[INFO] fetching crate win_ocr_bindings 0.1.0... [INFO] checking win_ocr_bindings-0.1.0 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] extracting crate win_ocr_bindings 0.1.0 into /workspace/builds/worker-2-tc1/source [INFO] validating manifest of crates.io crate win_ocr_bindings 0.1.0 on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate win_ocr_bindings 0.1.0 [INFO] finished tweaking crates.io crate win_ocr_bindings 0.1.0 [INFO] tweaked toml for crates.io crate win_ocr_bindings 0.1.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 11 packages to latest compatible versions [INFO] [stderr] Adding const-sha1 v0.2.0 (latest: v0.3.0) [INFO] [stderr] Adding syn v1.0.109 (latest: v2.0.77) [INFO] [stderr] Adding windows v0.21.1 (latest: v0.58.0) [INFO] [stderr] Adding windows_gen v0.21.1 (latest: v0.31.0) [INFO] [stderr] Adding windows_macros v0.21.1 (latest: v0.31.0) [INFO] [stderr] Adding windows_quote v0.21.1 (latest: v0.30.0) [INFO] [stderr] Adding windows_reader v0.21.1 (latest: v0.31.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded windows_macros v0.21.1 [INFO] [stderr] Downloaded windows v0.21.1 [INFO] [stderr] Downloaded windows_gen v0.21.1 [INFO] [stderr] Downloaded windows_quote v0.21.1 [INFO] [stderr] Downloaded windows_reader v0.21.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d2334c43029b013b820d3c4cc2db09bb5e140b14838653d2a5fe7c4c941c6437 [INFO] running `Command { std: "docker" "start" "-a" "d2334c43029b013b820d3c4cc2db09bb5e140b14838653d2a5fe7c4c941c6437", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d2334c43029b013b820d3c4cc2db09bb5e140b14838653d2a5fe7c4c941c6437", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d2334c43029b013b820d3c4cc2db09bb5e140b14838653d2a5fe7c4c941c6437", kill_on_drop: false }` [INFO] [stdout] d2334c43029b013b820d3c4cc2db09bb5e140b14838653d2a5fe7c4c941c6437 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3ad9f177d0159faab8583c4150bfacf6c001161a2fa7cd15aa0e19985ebdf2f6 [INFO] running `Command { std: "docker" "start" "-a" "3ad9f177d0159faab8583c4150bfacf6c001161a2fa7cd15aa0e19985ebdf2f6", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling windows_reader v0.21.1 [INFO] [stderr] Compiling windows_quote v0.21.1 [INFO] [stderr] Compiling const-sha1 v0.2.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking windows_gen v0.21.1 [INFO] [stderr] Compiling windows_macros v0.21.1 [INFO] [stderr] Compiling windows v0.21.1 [INFO] [stderr] Compiling win_ocr_bindings v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/win_ocr_bindings-6e1ac750950c780f/out/windows.rs:1:4102 [INFO] [stdout] | [INFO] [stdout] 1 | ...( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( thi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > AsyncActionCompletedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionCompletedHandler_box :: < F > { vtable : & AsyncActionCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncAction > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7})" ) ; } unsafe impl < > :: windows :: Interface for AsyncActionCompletedHandler { type Vtable = AsyncActionCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2767019137 ,30409 ,16573 , [ 139 ,230 ,177 ,217 ,15 ,178 ,10 ,231 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct AsyncActionCompletedHandler_box < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const AsyncActionCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionCompletedHandler_box :: < F > { const VTABLE : AsyncActionCompletedHandler_abi = AsyncActionCompletedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncActionCompletedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { let _ = Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncAction as :: windows :: Abi > :: Abi as * const < IAsyncAction as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationCompletedHandler < TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , > AsyncOperationCompletedHandler < TResult > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationCompletedHandler_box :: < TResult , F > { vtable : & AsyncOperationCompletedHandler_box :: < TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{fcdcf02c-e5d8-4478-915a-4d90b74b83a5}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationCompletedHandler < TResult > { type Vtable = AsyncOperationCompletedHandler_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationCompletedHandler < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationCompletedHandler_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationCompletedHandler_box < TResult , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationCompletedHandler_abi < TResult > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationCompletedHandler_box :: < TResult , F > { const VTABLE : AsyncOperationCompletedHandler_abi < TResult > = AsyncOperationCompletedHandler_abi :: < TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationCompletedHandler < TResult > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: Abi as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationProgressHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationProgressHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationProgressHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , Param1 : :: windows :: IntoParam < 'a , TProgress > , > ( & self , asyncinfo : Param0 , progressinfo : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationProgressHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{55690902-0aab-421a-8778-f8ce5026d758}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationProgressHandler < TResult , TProgress > { type Vtable = AsyncOperationProgressHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationProgressHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationProgressHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationProgressHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationProgressHandler_abi < TResult , TProgress > = AsyncOperationProgressHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationWithProgressCompletedHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e85df41d-6aa7-46e3-a8e2-f009d840c627}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type Vtable = AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationWithProgressCompletedHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > = AsyncOperationWithProgressCompletedHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AsyncStatus ( pub i32 ) ; impl AsyncStatus { pub const Canceled : AsyncStatus = AsyncStatus ( 2i32 ) ; pub const Completed : AsyncStatus = AsyncStatus ( 1i32 ) ; pub const Error : AsyncStatus = AsyncStatus ( 3i32 ) ; pub const Started : AsyncStatus = AsyncStatus ( 0i32 ) ; } impl :: std :: convert :: From < i32 > for AsyncStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AsyncStatus { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & self . UniversalTime ) . finish ( ) } } impl :: std :: cmp :: PartialEq for DateTime { fn eq ( & self , other : & Self ) -> bool { self . UniversalTime == other . UniversalTime } } impl :: std :: cmp :: Eq for DateTime { } unsafe impl :: windows :: Abi for DateTime { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for DateTime { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.DateTime;i8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncAction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncAction { type Vtable = IAsyncAction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1516535814 ,33850 ,19881 , [ 134 ,91 ,157 ,38 ,229 ,223 ,173 ,123 ] , ) ; } impl < > IAsyncAction { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionCompletedHandler > { let this = self ; unsafe { let mut result__ : < AsyncActionCompletedHandler as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < > :: windows :: RuntimeType for IAsyncAction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{5a648006-843a-4da9-865b-9d26e5dfad7b}" ) ; } impl < > :: std :: future :: Future for IAsyncAction { type Output = :: windows :: Result < ( ) > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IUnknown { fn from ( value : IAsyncAction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IUnknown { fn from ( value : & IAsyncAction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IInspectable { fn from ( value : IAsyncAction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IInspectable { fn from ( value : & IAsyncAction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncAction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncAction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < > :: std :: marker :: Send for IAsyncAction { } unsafe impl < > :: std :: marker :: Sync for IAsyncAction { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncAction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncInfo ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncInfo { type Vtable = IAsyncInfo_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 54 ,0 ,0 , [ 192 ,0 ,0 ,0 ,0 ,0 ,0 ,70 ] , ) ; } impl < > IAsyncInfo { pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = self ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = self ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IUnknown { fn from ( value : IAsyncInfo ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IUnknown { fn from ( value : & IAsyncInfo ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IInspectable { fn from ( value : IAsyncInfo ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IInspectable { fn from ( value : & IAsyncInfo ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncInfo_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut AsyncStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: HRESULT ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperation < TResult > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperation < TResult > { type Vtable = IAsyncOperation_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperation < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , > IAsyncOperation < TResult > { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationCompletedHandler < TResult > > { let this = self ; unsafe { let mut result__ : < AsyncOperationCompletedHandler < TResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationCompletedHandler < TResult > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperation < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9fc2b0bb-e446-44e2-aa61-9cab8f636af2}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperation < TResult > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : IAsyncOperation < TResult > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : IAsyncOperation < TResult > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperation < TResult > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperation < TResult > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperation < TResult > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperation_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperationWithProgress < TResult , TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperationWithProgress < TResult , TProgress > { type Vtable = IAsyncOperationWithProgress_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > IAsyncOperationWithProgress < TResult , TProgress > { pub fn SetProgress < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncOperationProgressHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperationWithProgress < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{b5d036d7-e297-498f-ba60-0289e76e23dd}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperationWithProgress < TResult , TProgress > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperationWithProgress < TResult , TProgress > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperationWithProgress < TResult , TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperationWithProgress_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IClosable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IClosable { type Vtable = IClosable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 819308585 ,32676 ,16422 , [ 131 ,187 ,215 ,91 ,174 ,78 ,169 ,158 ] , ) ; } impl < > IClosable { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } impl < > :: std :: convert :: From < IClosable > for :: windows :: IUnknown { fn from ( value : IClosable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IUnknown { fn from ( value : & IClosable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IClosable > for :: windows :: IInspectable { fn from ( value : IClosable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IInspectable { fn from ( value : & IClosable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IClosable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IPropertyValue ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValue { type Vtable = IPropertyValue_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1272349405 ,30036 ,16617 , [ 154 ,155 ,130 ,101 ,78 ,222 ,126 ,98 ] , ) ; } impl < > IPropertyValue { pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = self ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = self ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = self ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = self ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = self ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = self ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = self ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = self ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = self ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = self ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IUnknown { fn from ( value : IPropertyValue ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IUnknown { fn from ( value : & IPropertyValue ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IInspectable { fn from ( value : IPropertyValue ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IInspectable { fn from ( value : & IPropertyValue ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValue_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PropertyType ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Rect ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IReference < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReference < T > { type Vtable = IReference_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReference < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReference < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17706-2d65-11e0-9ae8-d48564015472}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IUnknown { fn from ( value : IReference < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IUnknown { fn from ( value : & IReference < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IInspectable { fn from ( value : IReference < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IInspectable { fn from ( value : & IReference < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : IReference < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : & IReference < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: std :: convert :: TryInto :: < IPropertyValue > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReference_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStringable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStringable { type Vtable = IStringable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2520162132 ,36534 ,18672 , [ 171 ,206 ,193 ,178 ,17 ,230 ,39 ,195 ] , ) ; } impl < > IStringable { pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } impl < > :: std :: convert :: From < IStringable > for :: windows :: IUnknown { fn from ( value : IStringable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IUnknown { fn from ( value : & IStringable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStringable > for :: windows :: IInspectable { fn from ( value : IStringable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IInspectable { fn from ( value : & IStringable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStringable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriEscapeStatics { type Vtable = IUriEscapeStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3251909306 ,51236 ,17490 , [ 167 ,253 ,81 ,43 ,195 ,187 ,233 ,161 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , tounescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClass { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , puri : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassFactory { type Vtable = IUriRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1151957359 ,29246 ,20447 , [ 162 ,24 ,3 ,62 ,117 ,176 ,192 ,132 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassWithAbsoluteCanonicalUri { type Vtable = IUriRuntimeClassWithAbsoluteCanonicalUri_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1972213345 ,8732 ,18447 , [ 163 ,57 ,80 ,101 ,102 ,115 ,244 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IWwwFormUrlDecoderEntry ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl < > IWwwFormUrlDecoderEntry { pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderEntry_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClass { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClassFactory { type Vtable = IWwwFormUrlDecoderRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1535929149 ,9390 ,16821 , [ 161 ,191 ,240 ,195 ,213 ,68 ,132 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Point { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y } } impl :: std :: cmp :: Eq for Point { } unsafe impl :: windows :: Abi for Point { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Point { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Point;f4;f4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PropertyType ( pub i32 ) ; impl PropertyType { pub const Empty : PropertyType = PropertyType ( 0i32 ) ; pub const UInt8 : PropertyType = PropertyType ( 1i32 ) ; pub const Int16 : PropertyType = PropertyType ( 2i32 ) ; pub const UInt16 : PropertyType = PropertyType ( 3i32 ) ; pub const Int32 : PropertyType = PropertyType ( 4i32 ) ; pub const UInt32 : PropertyType = PropertyType ( 5i32 ) ; pub const Int64 : PropertyType = PropertyType ( 6i32 ) ; pub const UInt64 : PropertyType = PropertyType ( 7i32 ) ; pub const Single : PropertyType = PropertyType ( 8i32 ) ; pub const Double : PropertyType = PropertyType ( 9i32 ) ; pub const Char16 : PropertyType = PropertyType ( 10i32 ) ; pub const Boolean : PropertyType = PropertyType ( 11i32 ) ; pub const String : PropertyType = PropertyType ( 12i32 ) ; pub const Inspectable : PropertyType = PropertyType ( 13i32 ) ; pub const DateTime : PropertyType = PropertyType ( 14i32 ) ; pub const TimeSpan : PropertyType = PropertyType ( 15i32 ) ; pub const Guid : PropertyType = PropertyType ( 16i32 ) ; pub const Point : PropertyType = PropertyType ( 17i32 ) ; pub const Size : PropertyType = PropertyType ( 18i32 ) ; pub const Rect : PropertyType = PropertyType ( 19i32 ) ; pub const OtherType : PropertyType = PropertyType ( 20i32 ) ; pub const UInt8Array : PropertyType = PropertyType ( 1025i32 ) ; pub const Int16Array : PropertyType = PropertyType ( 1026i32 ) ; pub const UInt16Array : PropertyType = PropertyType ( 1027i32 ) ; pub const Int32Array : PropertyType = PropertyType ( 1028i32 ) ; pub const UInt32Array : PropertyType = PropertyType ( 1029i32 ) ; pub const Int64Array : PropertyType = PropertyType ( 1030i32 ) ; pub const UInt64Array : PropertyType = PropertyType ( 1031i32 ) ; pub const SingleArray : PropertyType = PropertyType ( 1032i32 ) ; pub const DoubleArray : PropertyType = PropertyType ( 1033i32 ) ; pub const Char16Array : PropertyType = PropertyType ( 1034i32 ) ; pub const BooleanArray : PropertyType = PropertyType ( 1035i32 ) ; pub const StringArray : PropertyType = PropertyType ( 1036i32 ) ; pub const InspectableArray : PropertyType = PropertyType ( 1037i32 ) ; pub const DateTimeArray : PropertyType = PropertyType ( 1038i32 ) ; pub const TimeSpanArray : PropertyType = PropertyType ( 1039i32 ) ; pub const GuidArray : PropertyType = PropertyType ( 1040i32 ) ; pub const PointArray : PropertyType = PropertyType ( 1041i32 ) ; pub const SizeArray : PropertyType = PropertyType ( 1042i32 ) ; pub const RectArray : PropertyType = PropertyType ( 1043i32 ) ; pub const OtherTypeArray : PropertyType = PropertyType ( 1044i32 ) ; } impl :: std :: convert :: From < i32 > for PropertyType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PropertyType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for PropertyType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Rect { pub X : f32 , pub Y : f32 , pub Width : f32 , pub Height : f32 } impl Rect { } impl :: std :: default :: Default for Rect { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Rect { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y && self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Rect { } unsafe impl :: windows :: Abi for Rect { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Rect { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Size { fn eq ( & self , other : & Self ) -> bool { self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Size { } unsafe impl :: windows :: Abi for Size { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Size { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & self . Duration ) . finish ( ) } } impl :: std :: cmp :: PartialEq for TimeSpan { fn eq ( & self , other : & Self ) -> bool { self . Duration == other . Duration } } impl :: std :: cmp :: Eq for TimeSpan { } unsafe impl :: windows :: Abi for TimeSpan { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for TimeSpan { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.TimeSpan;i8)" ) ; } impl :: std :: convert :: From < :: std :: time :: Duration > for TimeSpan { fn from ( value : :: std :: time :: Duration ) -> Self { Self { Duration : ( value . as_nanos ( ) / 100 ) as i64 , } } } impl :: std :: convert :: From < TimeSpan > for :: std :: time :: Duration { fn from ( value : TimeSpan ) -> Self { :: std :: time :: Duration :: from_nanos ( ( value . Duration * 100 ) as u64 ) } } impl < 'a > :: windows :: IntoParam < 'a , TimeSpan > for :: std :: time :: Duration { fn into_param ( self ) -> :: windows :: Param < 'a , TimeSpan > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Uri ( :: windows :: IInspectable ) ; impl Uri { pub fn AbsoluteUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Domain < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Extension < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Fragment < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Host < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Password < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Query < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn QueryParsed < > ( & self , ) -> :: windows :: Result < WwwFormUrlDecoder > { let this = self ; unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } } pub fn RawUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn SchemeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UserName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Port < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn Suspicious < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , Param0 : :: windows :: IntoParam < 'a , Uri > , > ( & self , puri : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , relativeuri : Param0 , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } } pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStringable > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( tounescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( toescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( uri : Param0 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( baseuri : Param0 , relativeuri : Param1 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , baseuri . into_param ( ) . abi ( ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn IUriEscapeStatics < R , F : FnOnce ( & IUriEscapeStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriEscapeStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IUriRuntimeClassFactory < R , F : FnOnce ( & IUriRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Uri { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Uri;{9e365e57-48b2-4160-956f-c7385120bbfc})" ) ; } unsafe impl :: windows :: Interface for Uri { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } impl :: windows :: RuntimeName for Uri { const NAME : & 'static str ="Windows.Foundation.Uri" ; } impl < > :: std :: convert :: From < Uri > for :: windows :: IUnknown { fn from ( value : Uri ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IUnknown { fn from ( value : & Uri ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Uri > for :: windows :: IInspectable { fn from ( value : Uri ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IInspectable { fn from ( value : & Uri ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : Uri ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : & Uri ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: std :: convert :: TryInto :: < IStringable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for Uri { } unsafe impl :: std :: marker :: Sync for Uri { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoder ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoder { pub fn GetFirstValueByName < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > { let this = & :: windows :: Interface :: cast :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > ( result__ ) } } pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < IWwwFormUrlDecoderEntry > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( query : Param0 , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , query . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } ) } pub fn IWwwFormUrlDecoderRuntimeClassFactory < R , F : FnOnce ( & IWwwFormUrlDecoderRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < WwwFormUrlDecoder , IWwwFormUrlDecoderRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoder;{d45a0451-f225-4542-9296-0e1df5d254df})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoder { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoder { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoder" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : WwwFormUrlDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoder { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoder { } impl < > :: std :: iter :: IntoIterator for WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < > :: std :: iter :: IntoIterator for & WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( :: std :: convert :: TryInto :: try_into ( self ) . ok ( ) ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Collections { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterable < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterable < T > { type Vtable = IIterable_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterable < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterable < T > { pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = self ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{faa585ea-6214-4217-afda-7f46de5869b3}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IUnknown { fn from ( value : IIterable < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IUnknown { fn from ( value : & IIterable < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IInspectable { fn from ( value : IIterable < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IInspectable { fn from ( value : & IIterable < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterable_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterator < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterator < T > { type Vtable = IIterator_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterator < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterator < T > { pub fn Current < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn HasCurrent < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn MoveNext < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterator < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6a79e863-4300-459a-9966-cbb660963ee1}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IUnknown { fn from ( value : IIterator < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IUnknown { fn from ( value : & IIterator < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IInspectable { fn from ( value : IIterator < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IInspectable { fn from ( value : & IIterator < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for IIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { let result = self . Current ( ) . ok ( ) ; if result . is_some ( ) { self . MoveNext ( ) . ok ( ) ? ; } result } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterator_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IKeyValuePair < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IKeyValuePair < K , V > { type Vtable = IKeyValuePair_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IKeyValuePair < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IKeyValuePair < K , V > { pub fn Key < > ( & self , ) -> :: windows :: Result < K > { let this = self ; unsafe { let mut result__ : < K as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < K > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IKeyValuePair < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{02b51929-c1c4-4a7e-8940-0312b5c18500}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : IKeyValuePair < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : & IKeyValuePair < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : IKeyValuePair < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : & IKeyValuePair < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IKeyValuePair_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMap < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMap < K , V > { type Vtable = IMap_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMap < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMap < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IMapView < K , V > > { let this = self ; unsafe { let mut result__ : < IMapView < K , V > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IMapView < K , V > > ( result__ ) } } pub fn Insert < 'a , Param0 : :: windows :: IntoParam < 'a , K > , Param1 : :: windows :: IntoParam < 'a , V > , > ( & self , key : Param0 , value : Param1 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Remove < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMap < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{3c2925fe-8519-45c1-aa79-197b6718c1c1}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IUnknown { fn from ( value : IMap < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IUnknown { fn from ( value : & IMap < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IInspectable { fn from ( value : IMap < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IInspectable { fn from ( value : & IMap < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMap < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMap < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMap_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , value : < V as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMapView < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMapView < K , V > { type Vtable = IMapView_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMapView < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMapView < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Split < > ( & self , first : & mut :: std :: option :: Option < IMapView < K , V > > , second : & mut :: std :: option :: Option < IMapView < K , V > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , first as * mut _ as _ , second as * mut _ as _ , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMapView < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e480ce40-a338-4ada-adcf-272272e48cb9}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : IMapView < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : & IMapView < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : IMapView < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : & IMapView < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMapView < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMapView < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMapView_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , first : * mut :: windows :: RawPtr , second : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVector < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVector < T > { type Vtable = IVector_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVector < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVector < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IVectorView < T > > { let this = self ; unsafe { let mut result__ : < IVectorView < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IVectorView < T > > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn InsertAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAt < > ( & self , index : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , index , ) . ok ( ) } } pub fn Append < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAtEnd < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReplaceAll < > ( & self , items : & [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute ( items . as_ptr ( ) ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVector < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{913337e9-11a1-4345-a3a2-4e7f956e222d}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IUnknown { fn from ( value : IVector < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IUnknown { fn from ( value : & IVector < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IInspectable { fn from ( value : IVector < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IInspectable { fn from ( value : & IVector < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVector < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVector < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVector < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVector < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVector_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * const < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVectorView < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVectorView < T > { type Vtable = IVectorView_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVectorView < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVectorView < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{bbe1fa4c-b0e3-4583-baef-1f1b2e483e56}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IUnknown { fn from ( value : IVectorView < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IUnknown { fn from ( value : & IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IInspectable { fn from ( value : IVectorView < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IInspectable { fn from ( value : & IVectorView < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVectorView < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVectorView < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVectorView < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVectorView < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVectorView_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Globalization { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage2 { type Vtable = ILanguage2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1783096757 ,55629 ,18566 , [ 164 ,4 ,165 ,165 ,185 ,213 ,180 ,148 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut LanguageLayoutDirection ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage3 { type Vtable = ILanguage3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3333373200 ,25626 ,23460 , [ 187 ,67 ,94 ,18 ,174 ,215 ,89 ,84 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageExtensionSubtags { type Vtable = ILanguageExtensionSubtags_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2105388869 ,13965 ,17252 , [ 133 ,43 ,222 ,201 ,39 ,3 ,123 ,133 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , singleton : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageFactory { type Vtable = ILanguageFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2600620716 ,3111 ,17656 , [ 183 ,146 ,151 ,147 ,251 ,102 ,198 ,62 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics { type Vtable = ILanguageStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2990331223 ,2149 ,18132 , [ 137 ,184 ,213 ,155 ,232 ,153 ,15 ,13 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics2 { type Vtable = ILanguageStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 806985582 ,37195 ,19242 , [ 157 ,110 ,227 ,176 ,226 ,125 ,190 ,79 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics3 { type Vtable = ILanguageStatics3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3512650586 ,29150 ,22354 , [ 149 ,66 ,250 ,197 ,180 ,242 ,114 ,97 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetags : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Language ( :: windows :: IInspectable ) ; impl Language { pub fn LanguageTag < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn NativeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Script < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetExtensionSubtags < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , singleton : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = & :: windows :: Interface :: cast :: < ILanguageExtensionSubtags > ( self ) ? ; unsafe { let mut result__ : < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , singleton . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn CreateLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < Language > { Self :: ILanguageFactory ( | this | unsafe { let mut result__ : < Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Language > ( result__ ) } ) } pub fn IsWellFormed < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn CurrentInputMethodLanguageTag < > ( ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn TrySetInputMethodLanguageTag < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn LayoutDirection < > ( & self , ) -> :: windows :: Result < LanguageLayoutDirection > { let this = & :: windows :: Interface :: cast :: < ILanguage2 > ( self ) ? ; unsafe { let mut result__ : < LanguageLayoutDirection as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < LanguageLayoutDirection > ( result__ ) } } pub fn AbbreviatedName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < ILanguage3 > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetMuiCompatibleLanguageListFromLanguageTags < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( languagetags : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > { Self :: ILanguageStatics3 ( | this | unsafe { let mut result__ : < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetags . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > ( result__ ) } ) } pub fn ILanguageFactory < R , F : FnOnce ( & ILanguageFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics < R , F : FnOnce ( & ILanguageStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics2 < R , F : FnOnce ( & ILanguageStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics3 < R , F : FnOnce ( & ILanguageStatics3 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics3 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Language { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Globalization.Language;{ea79a752-f7c2-4265-b1bd-c4dec4e4f080})" ) ; } unsafe impl :: windows :: Interface for Language { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } impl :: windows :: RuntimeName for Language { const NAME : & 'static str ="Windows.Globalization.Language" ; } impl < > :: std :: convert :: From < Language > for :: windows :: IUnknown { fn from ( value : Language ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Language > for :: windows :: IUnknown { fn from ( value : & Language ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Language > for :: windows :: IInspectable { fn from ( value : Language ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Language > for :: windows :: IInspectable { fn from ( value : & Language ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Language { } unsafe impl :: std :: marker :: Sync for Language { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct LanguageLayoutDirection ( pub i32 ) ; impl LanguageLayoutDirection { pub const Ltr : LanguageLayoutDirection = LanguageLayoutDirection ( 0i32 ) ; pub const Rtl : LanguageLayoutDirection = LanguageLayoutDirection ( 1i32 ) ; pub const TtbLtr : LanguageLayoutDirection = LanguageLayoutDirection ( 2i32 ) ; pub const TtbRtl : LanguageLayoutDirection = LanguageLayoutDirection ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for LanguageLayoutDirection { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for LanguageLayoutDirection { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for LanguageLayoutDirection { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Globalization.LanguageLayoutDirection;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Graphics { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod DirectX { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Direct3D11 { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IDirect3DSurface ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDirect3DSurface { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 200581446 ,5057 ,18068 , [ 190 ,227 ,122 ,191 ,21 ,234 ,245 ,134 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IDirect3DSurface { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{0bf4a146-13c1-4694-bee3-7abf15eaf586}" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Imaging { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapAlphaMode ( pub i32 ) ; impl BitmapAlphaMode { pub const Premultiplied : BitmapAlphaMode = BitmapAlphaMode ( 0i32 ) ; pub const Straight : BitmapAlphaMode = BitmapAlphaMode ( 1i32 ) ; pub const Ignore : BitmapAlphaMode = BitmapAlphaMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapAlphaMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapAlphaMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapAlphaMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapAlphaMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapBuffer ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapBuffer;{a53e04c4-399c-438c-b28f-a63a6b83d1a1})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapBufferAccessMode ( pub i32 ) ; impl BitmapBufferAccessMode { pub const Read : BitmapBufferAccessMode = BitmapBufferAccessMode ( 0i32 ) ; pub const ReadWrite : BitmapBufferAccessMode = BitmapBufferAccessMode ( 1i32 ) ; pub const Write : BitmapBufferAccessMode = BitmapBufferAccessMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapBufferAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapBufferAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapBufferAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapBufferAccessMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapCodecInformation ( :: windows :: IInspectable ) ; impl BitmapCodecInformation { pub fn CodecId < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn FileExtensions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn FriendlyName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn MimeTypes < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapCodecInformation { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapCodecInformation;{400caaf2-c4b0-4392-a3b0-6f6f9ba95cb4})" ) ; } unsafe impl :: windows :: Interface for BitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } impl :: windows :: RuntimeName for BitmapCodecInformation { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapCodecInformation" ; } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : BitmapCodecInformation ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : & BitmapCodecInformation ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : BitmapCodecInformation ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : & BitmapCodecInformation ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for BitmapCodecInformation { } unsafe impl :: std :: marker :: Sync for BitmapCodecInformation { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapDecoder ( :: windows :: IInspectable ) ; impl BitmapDecoder { pub fn BitmapContainerProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn DecoderInformation < > ( & self , ) -> :: windows :: Result < BitmapCodecInformation > { let this = self ; unsafe { let mut result__ : < BitmapCodecInformation as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapCodecInformation > ( result__ ) } } pub fn FrameCount < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPreviewAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn GetFrameAsync < > ( & self , frameindex : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , frameindex , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn BmpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn PngDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn TiffDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegXRDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IcoDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GetDecoderInformationEnumerator < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > ( result__ ) } ) } pub fn CreateAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( stream : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn CreateWithIdAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: Guid > , Param1 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( decoderid : Param0 , stream : Param1 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , decoderid . into_param ( ) . abi ( ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn HeifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn WebpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IBitmapDecoderStatics < R , F : FnOnce ( & IBitmapDecoderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IBitmapDecoderStatics2 < R , F : FnOnce ( & IBitmapDecoderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for BitmapDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapDecoder;{acef22ba-1d74-4c91-9dfc-9620745233e6})" ) ; } unsafe impl :: windows :: Interface for BitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } impl :: windows :: RuntimeName for BitmapDecoder { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapDecoder" ; } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IUnknown { fn from ( value : BitmapDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IUnknown { fn from ( value : & BitmapDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IInspectable { fn from ( value : BitmapDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IInspectable { fn from ( value : & BitmapDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapDecoder { } unsafe impl :: std :: marker :: Sync for BitmapDecoder { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapFrame ( :: windows :: IInspectable ) ; impl BitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapFrame;{72a49a1c-8081-438d-91bc-94ecfc8185c6})" ) ; } unsafe impl :: windows :: Interface for BitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl :: windows :: RuntimeName for BitmapFrame { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapFrame" ; } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IUnknown { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IUnknown { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IInspectable { fn from ( value : BitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IInspectable { fn from ( value : & BitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < BitmapFrame > for IBitmapFrame { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for IBitmapFrame { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapFrame ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapFrame ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapFrame { } unsafe impl :: std :: marker :: Sync for BitmapFrame { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapPixelFormat ( pub i32 ) ; impl BitmapPixelFormat { pub const Unknown : BitmapPixelFormat = BitmapPixelFormat ( 0i32 ) ; pub const Rgba16 : BitmapPixelFormat = BitmapPixelFormat ( 12i32 ) ; pub const Rgba8 : BitmapPixelFormat = BitmapPixelFormat ( 30i32 ) ; pub const Gray16 : BitmapPixelFormat = BitmapPixelFormat ( 57i32 ) ; pub const Gray8 : BitmapPixelFormat = BitmapPixelFormat ( 62i32 ) ; pub const Bgra8 : BitmapPixelFormat = BitmapPixelFormat ( 87i32 ) ; pub const Nv12 : BitmapPixelFormat = BitmapPixelFormat ( 103i32 ) ; pub const P010 : BitmapPixelFormat = BitmapPixelFormat ( 104i32 ) ; pub const Yuy2 : BitmapPixelFormat = BitmapPixelFormat ( 107i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapPixelFormat { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapPixelFormat { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapPixelFormat { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapPixelFormat;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapPropertiesView ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapPropertiesView;{7e0fe87a-3a70-48f8-9c55-196cf5a545f5})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapTransform ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapTransform;{ae755344-e268-4d35-adcf-e995d31a8d34})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ColorManagementMode ( pub i32 ) ; impl ColorManagementMode { pub const DoNotColorManage : ColorManagementMode = ColorManagementMode ( 0i32 ) ; pub const ColorManageToSRgb : ColorManagementMode = ColorManagementMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ColorManagementMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ColorManagementMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ColorManagementMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ColorManagementMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ExifOrientationMode ( pub i32 ) ; impl ExifOrientationMode { pub const IgnoreExifOrientation : ExifOrientationMode = ExifOrientationMode ( 0i32 ) ; pub const RespectExifOrientation : ExifOrientationMode = ExifOrientationMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ExifOrientationMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ExifOrientationMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ExifOrientationMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ExifOrientationMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{a53e04c4-399c-438c-b28f-a63a6b83d1a1}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , frameindex : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics { type Vtable = IBitmapDecoderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133300518 ,48367 ,20117 , [ 186 ,214 ,35 ,168 ,34 ,229 ,141 ,1 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , decoderid : :: windows :: Guid , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics2 { type Vtable = IBitmapDecoderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1354393834 ,39329 ,16580 , [ 128 ,217 ,174 ,240 ,218 ,250 ,108 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrame ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl < > IBitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72a49a1c-8081-438d-91bc-94ecfc8185c6}" ) ; } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IUnknown { fn from ( value : IBitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IUnknown { fn from ( value : & IBitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IInspectable { fn from ( value : IBitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IInspectable { fn from ( value : & IBitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrame_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrameWithSoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrameWithSoftwareBitmap { type Vtable = IBitmapFrameWithSoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4264066202 ,16908 ,18787 , [ 135 ,173 ,105 ,20 ,54 ,224 ,131 ,131 ] , ) ; } impl < > IBitmapFrameWithSoftwareBitmap { pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrameWithSoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fe287c9a-420c-4963-87ad-691436e08383}" ) ; } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrameWithSoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapPropertiesView ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{7e0fe87a-3a70-48f8-9c55-196cf5a545f5}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapTransform ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{ae755344-e268-4d35-adcf-e995d31a8d34}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result_size__ : * mut u32 , result__ : * mut * mut u8 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : BitmapBufferAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapFactory { type Vtable = ISoftwareBitmapFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382700905 ,11618 ,19783 , [ 166 ,179 ,79 ,219 ,106 ,7 ,253 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapStatics { type Vtable = ISoftwareBitmapStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3741550043 ,26415 ,19101 , [ 128 ,110 ,194 ,68 ,47 ,52 ,62 ,134 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct ImageStream ( :: windows :: IInspectable ) ; impl ImageStream { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::super::Storage::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::super::Storage::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for ImageStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.ImageStream;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for ImageStream { type Vtable = super::super::Storage::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for ImageStream { const NAME : & 'static str ="Windows.Graphics.Imaging.ImageStream" ; } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IUnknown { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IUnknown { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IInspectable { fn from ( value : ImageStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IInspectable { fn from ( value : & ImageStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for ImageStream { } unsafe impl :: std :: marker :: Sync for ImageStream { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PixelDataProvider ( :: windows :: IInspectable ) ; impl PixelDataProvider { pub fn DetachPixelData < > ( & self , ) -> :: windows :: Result < :: windows :: Array < u8 > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < u8 > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , :: windows :: Array :: < u8 > :: set_abi_len ( & mut result__ ) , & mut result__ as * mut _ as _ ) . and_then ( || result__ ) } } } unsafe impl :: windows :: RuntimeType for PixelDataProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.PixelDataProvider;{dd831f25-185c-4595-9fb9-ccbe6ec18a6f})" ) ; } unsafe impl :: windows :: Interface for PixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } impl :: windows :: RuntimeName for PixelDataProvider { const NAME : & 'static str ="Windows.Graphics.Imaging.PixelDataProvider" ; } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IUnknown { fn from ( value : PixelDataProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IUnknown { fn from ( value : & PixelDataProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IInspectable { fn from ( value : PixelDataProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IInspectable { fn from ( value : & PixelDataProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PixelDataProvider { } unsafe impl :: std :: marker :: Sync for PixelDataProvider { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct SoftwareBitmap ( :: windows :: IInspectable ) ; impl SoftwareBitmap { pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn IsReadOnly < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetDpiX < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetDpiY < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn LockBuffer < > ( & self , mode : BitmapBufferAccessMode , ) -> :: windows :: Result < BitmapBuffer > { let this = self ; unsafe { let mut result__ : < BitmapBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < BitmapBuffer > ( result__ ) } } pub fn CopyTo < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyToBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetReadOnlyView < > ( & self , ) -> :: windows :: Result < SoftwareBitmap > { let this = self ; unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Create < > ( format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateWithAlpha < > ( format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Copy < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Convert < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn ConvertWithAlpha < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , alpha , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn ISoftwareBitmapFactory < R , F : FnOnce ( & ISoftwareBitmapFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ISoftwareBitmapStatics < R , F : FnOnce ( & ISoftwareBitmapStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for SoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.SoftwareBitmap;{689e0708-7eef-483f-963f-da938818e073})" ) ; } unsafe impl :: windows :: Interface for SoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } impl :: windows :: RuntimeName for SoftwareBitmap { const NAME : & 'static str ="Windows.Graphics.Imaging.SoftwareBitmap" ; } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : SoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & SoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : SoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & SoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : SoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & SoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for SoftwareBitmap { } unsafe impl :: std :: marker :: Sync for SoftwareBitmap { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Media { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Ocr { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngineStatics { type Vtable = IOcrEngineStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1543481434 ,13188 ,13632 , [ 153 ,64 ,105 ,145 ,32 ,212 ,40 ,168 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrLine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrLine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrResult_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrWord ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrWord_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrEngine ( :: windows :: IInspectable ) ; impl OcrEngine { pub fn RecognizeAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Graphics::Imaging:: SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < OcrResult > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < OcrResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < OcrResult > > ( result__ ) } } pub fn RecognizerLanguage < > ( & self , ) -> :: windows :: Result < super::super::Globalization:: Language > { let this = self ; unsafe { let mut result__ : < super::super::Globalization:: Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Globalization:: Language > ( result__ ) } } pub fn MaxImageDimension < > ( ) -> :: windows :: Result < u32 > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } ) } pub fn AvailableRecognizerLanguages < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > ( result__ ) } ) } pub fn IsLanguageSupported < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < bool > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn TryCreateFromLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn TryCreateFromUserProfileLanguages < > ( ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn IOcrEngineStatics < R , F : FnOnce ( & IOcrEngineStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < OcrEngine , IOcrEngineStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for OcrEngine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrEngine;{5a14bc41-5b76-3140-b680-8825562683ac})" ) ; } unsafe impl :: windows :: Interface for OcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } impl :: windows :: RuntimeName for OcrEngine { const NAME : & 'static str ="Windows.Media.Ocr.OcrEngine" ; } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IUnknown { fn from ( value : OcrEngine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IUnknown { fn from ( value : & OcrEngine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IInspectable { fn from ( value : OcrEngine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IInspectable { fn from ( value : & OcrEngine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrEngine { } unsafe impl :: std :: marker :: Sync for OcrEngine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrLine ( :: windows :: IInspectable ) ; impl OcrLine { pub fn Words < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrWord > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrLine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrLine;{0043a16f-e31f-3a24-899c-d444bd088124})" ) ; } unsafe impl :: windows :: Interface for OcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } impl :: windows :: RuntimeName for OcrLine { const NAME : & 'static str ="Windows.Media.Ocr.OcrLine" ; } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IUnknown { fn from ( value : OcrLine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IUnknown { fn from ( value : & OcrLine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IInspectable { fn from ( value : OcrLine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IInspectable { fn from ( value : & OcrLine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrLine { } unsafe impl :: std :: marker :: Sync for OcrLine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrResult ( :: windows :: IInspectable ) ; impl OcrResult { pub fn Lines < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrLine > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > ( result__ ) } } pub fn TextAngle < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < f64 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < f64 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrResult;{9bd235b2-175b-3d6a-92e2-388c206e2f63})" ) ; } unsafe impl :: windows :: Interface for OcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } impl :: windows :: RuntimeName for OcrResult { const NAME : & 'static str ="Windows.Media.Ocr.OcrResult" ; } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IUnknown { fn from ( value : OcrResult ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IUnknown { fn from ( value : & OcrResult ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IInspectable { fn from ( value : OcrResult ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IInspectable { fn from ( value : & OcrResult ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrResult { } unsafe impl :: std :: marker :: Sync for OcrResult { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrWord ( :: windows :: IInspectable ) ; impl OcrWord { pub fn BoundingRect < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: Rect > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: Rect > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrWord { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrWord;{3c2a477a-5cd9-3525-ba2a-23d1e0a68a1d})" ) ; } unsafe impl :: windows :: Interface for OcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } impl :: windows :: RuntimeName for OcrWord { const NAME : & 'static str ="Windows.Media.Ocr.OcrWord" ; } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IUnknown { fn from ( value : OcrWord ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IUnknown { fn from ( value : & OcrWord ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IInspectable { fn from ( value : OcrWord ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IInspectable { fn from ( value : & OcrWord ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrWord { } unsafe impl :: std :: marker :: Sync for OcrWord { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CreationCollisionOption ( pub i32 ) ; impl CreationCollisionOption { pub const GenerateUniqueName : CreationCollisionOption = CreationCollisionOption ( 0i32 ) ; pub const ReplaceExisting : CreationCollisionOption = CreationCollisionOption ( 1i32 ) ; pub const FailIfExists : CreationCollisionOption = CreationCollisionOption ( 2i32 ) ; pub const OpenIfExists : CreationCollisionOption = CreationCollisionOption ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for CreationCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CreationCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CreationCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.CreationCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAccessMode ( pub i32 ) ; impl FileAccessMode { pub const Read : FileAccessMode = FileAccessMode ( 0i32 ) ; pub const ReadWrite : FileAccessMode = FileAccessMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for FileAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAccessMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAttributes ( pub u32 ) ; impl FileAttributes { pub const Normal : FileAttributes = FileAttributes ( 0u32 ) ; pub const ReadOnly : FileAttributes = FileAttributes ( 1u32 ) ; pub const Directory : FileAttributes = FileAttributes ( 16u32 ) ; pub const Archive : FileAttributes = FileAttributes ( 32u32 ) ; pub const Temporary : FileAttributes = FileAttributes ( 256u32 ) ; pub const LocallyIncomplete : FileAttributes = FileAttributes ( 512u32 ) ; } impl :: std :: convert :: From < u32 > for FileAttributes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAttributes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAttributes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAttributes;u4)" ) ; } impl :: std :: ops :: BitOr for FileAttributes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for FileAttributes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for FileAttributes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for FileAttributes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for FileAttributes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl < > IStorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fa3f6186-4214-428c-a64c-14c9ac7315ea}" ) ; } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IUnknown { fn from ( value : IStorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IUnknown { fn from ( value : & IStorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IInspectable { fn from ( value : IStorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IInspectable { fn from ( value : & IStorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile2 { type Vtable = IStorageFile2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2504936399 ,2679 ,17147 , [ 183 ,119 ,194 ,237 ,88 ,165 ,46 ,68 ] , ) ; } impl < > IStorageFile2 { pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{954e4bcf-0a77-42fb-b777-c2ed58a52e44}" ) ; } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IUnknown { fn from ( value : IStorageFile2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IUnknown { fn from ( value : & IStorageFile2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IInspectable { fn from ( value : IStorageFile2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IInspectable { fn from ( value : & IStorageFile2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFilePropertiesWithAvailability ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFilePropertiesWithAvailability { type Vtable = IStorageFilePropertiesWithAvailability_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2949365403 ,22571 ,16691 , [ 150 ,72 ,228 ,76 ,164 ,110 ,228 ,145 ] , ) ; } impl < > IStorageFilePropertiesWithAvailability { pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFilePropertiesWithAvailability { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{afcbbe9b-582b-4133-9648-e44ca46ee491}" ) ; } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFilePropertiesWithAvailability_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics { type Vtable = IStorageFileStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1501873936 ,56050 ,17352 , [ 139 ,180 ,164 ,211 ,234 ,207 ,208 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics2 { type Vtable = IStorageFileStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1551280001 ,8494 ,19193 , [ 143 ,4 ,116 ,12 ,174 ,16 ,137 ,116 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl < > IStorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b}" ) ; } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IUnknown { fn from ( value : IStorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IUnknown { fn from ( value : & IStorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IInspectable { fn from ( value : IStorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IInspectable { fn from ( value : & IStorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder2 { type Vtable = IStorageFolder2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3894929593 ,2265 ,19086 , [ 160 ,172 ,254 ,94 ,211 ,203 ,187 ,211 ] , ) ; } impl < > IStorageFolder2 { pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e827e8b9-08d9-4a8e-a0ac-fe5ed3cbbbd3}" ) ; } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : IStorageFolder2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : & IStorageFolder2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : IStorageFolder2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : & IStorageFolder2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder3 { type Vtable = IStorageFolder3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2673965209 ,48609 ,16676 , [ 174 ,179 ,176 ,106 ,217 ,111 ,152 ,212 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics { type Vtable = IStorageFolderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 150153215 ,34261 ,18617 , [ 174 ,233 ,40 ,81 ,30 ,51 ,159 ,159 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics2 { type Vtable = IStorageFolderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3026546115 ,29138 ,18045 , [ 139 ,41 ,55 ,31 ,15 ,98 ,191 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem { type Vtable = IStorageItem_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1107798422 ,51759 ,17143 , [ 189 ,232 ,139 ,16 ,69 ,122 ,127 ,48 ] , ) ; } impl < > IStorageItem { pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = self ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4207a996-ca2f-42f7-bde8-8b10457a7f30}" ) ; } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IUnknown { fn from ( value : IStorageItem ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IUnknown { fn from ( value : & IStorageItem ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IInspectable { fn from ( value : IStorageItem ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IInspectable { fn from ( value : & IStorageItem ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , option : StorageDeleteOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut FileAttributes ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , r#type : StorageItemTypes , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem2 { type Vtable = IStorageItem2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1408837330 ,2108 ,17027 , [ 180 ,91 ,129 ,192 ,7 ,35 ,126 ,68 ] , ) ; } impl < > IStorageItem2 { pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{53f926d2-083c-4283-b45b-81c007237e44}" ) ; } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IUnknown { fn from ( value : IStorageItem2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IUnknown { fn from ( value : & IStorageItem2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IInspectable { fn from ( value : IStorageItem2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IInspectable { fn from ( value : & IStorageItem2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageItem2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItem2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , item : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties { type Vtable = IStorageItemProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2254849144 ,32809 ,18174 , [ 167 ,137 ,28 ,47 ,62 ,47 ,251 ,92 ] , ) ; } impl < > IStorageItemProperties { pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = self ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{86664478-8029-46fe-a789-1c2f3e2ffb5c}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties2 { type Vtable = IStorageItemProperties2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2391189841 ,1209 ,19410 , [ 146 ,157 ,254 ,243 ,247 ,22 ,33 ,208 ] , ) ; } impl < > IStorageItemProperties2 { pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{8e86a951-04b9-4bd2-929d-fef3f71621d0}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemPropertiesWithProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemPropertiesWithProvider { type Vtable = IStorageItemPropertiesWithProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2249978779 ,25448 ,19950 , [ 180 ,14 ,116 ,104 ,74 ,92 ,231 ,20 ] , ) ; } impl < > IStorageItemPropertiesWithProvider { pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = self ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemPropertiesWithProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{861bf39b-6368-4dee-b40e-74684a5ce714}" ) ; } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemPropertiesWithProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageLibraryChangeTracker ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{9e157316-6073-44f6-9681-7492d1286c90}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e705eed4-d478-47d6-ba46-1a8ebe114a20}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct NameCollisionOption ( pub i32 ) ; impl NameCollisionOption { pub const GenerateUniqueName : NameCollisionOption = NameCollisionOption ( 0i32 ) ; pub const ReplaceExisting : NameCollisionOption = NameCollisionOption ( 1i32 ) ; pub const FailIfExists : NameCollisionOption = NameCollisionOption ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for NameCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for NameCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for NameCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.NameCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageDeleteOption ( pub i32 ) ; impl StorageDeleteOption { pub const Default : StorageDeleteOption = StorageDeleteOption ( 0i32 ) ; pub const PermanentDelete : StorageDeleteOption = StorageDeleteOption ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for StorageDeleteOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageDeleteOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageDeleteOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageDeleteOption;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFile ( :: windows :: IInspectable ) ; impl StorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageFilePropertiesWithAvailability > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } pub fn GetFileFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromApplicationUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , > ( uri : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn IStorageFileStatics < R , F : FnOnce ( & IStorageFileStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFileStatics2 < R , F : FnOnce ( & IStorageFileStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFile;{fa3f6186-4214-428c-a64c-14c9ac7315ea})" ) ; } unsafe impl :: windows :: Interface for StorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl :: windows :: RuntimeName for StorageFile { const NAME : & 'static str ="Windows.Storage.StorageFile" ; } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IUnknown { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IUnknown { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IInspectable { fn from ( value : StorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IInspectable { fn from ( value : & StorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFile > for IStorageFile { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for IStorageFile { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: std :: convert :: TryInto :: < IStorageFile2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: std :: convert :: TryInto :: < IStorageFilePropertiesWithAvailability > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFolder ( :: windows :: IInspectable ) ; impl StorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = & :: windows :: Interface :: cast :: < IStorageFolder2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : Search:: CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : Search:: CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetFolderFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn TryGetChangeTracker < > ( & self , ) -> :: windows :: Result < StorageLibraryChangeTracker > { let this = & :: windows :: Interface :: cast :: < IStorageFolder3 > ( self ) ? ; unsafe { let mut result__ : < StorageLibraryChangeTracker as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageLibraryChangeTracker > ( result__ ) } } pub fn GetFolderFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn IStorageFolderStatics < R , F : FnOnce ( & IStorageFolderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFolderStatics2 < R , F : FnOnce ( & IStorageFolderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFolder;{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b})" ) ; } unsafe impl :: windows :: Interface for StorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl :: windows :: RuntimeName for StorageFolder { const NAME : & 'static str ="Windows.Storage.StorageFolder" ; } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IUnknown { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IUnknown { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IInspectable { fn from ( value : StorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IInspectable { fn from ( value : & StorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFolder > for IStorageFolder { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for IStorageFolder { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: std :: convert :: TryInto :: < IStorageFolder2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: std :: convert :: TryInto :: < Search:: IStorageFolderQueryOperations > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageItemTypes ( pub u32 ) ; impl StorageItemTypes { pub const None : StorageItemTypes = StorageItemTypes ( 0u32 ) ; pub const File : StorageItemTypes = StorageItemTypes ( 1u32 ) ; pub const Folder : StorageItemTypes = StorageItemTypes ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageItemTypes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageItemTypes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageItemTypes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageItemTypes;u4)" ) ; } impl :: std :: ops :: BitOr for StorageItemTypes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageItemTypes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageItemTypes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageItemTypes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageItemTypes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageLibraryChangeTracker ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageLibraryChangeTracker;{9e157316-6073-44f6-9681-7492d1286c90})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageOpenOptions ( pub u32 ) ; impl StorageOpenOptions { pub const None : StorageOpenOptions = StorageOpenOptions ( 0u32 ) ; pub const AllowOnlyReaders : StorageOpenOptions = StorageOpenOptions ( 1u32 ) ; pub const AllowReadersAndWriters : StorageOpenOptions = StorageOpenOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageOpenOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageOpenOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageOpenOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageOpenOptions;u4)" ) ; } impl :: std :: ops :: BitOr for StorageOpenOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageOpenOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageOpenOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageOpenOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageOpenOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageProvider ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageProvider;{e705eed4-d478-47d6-ba46-1a8ebe114a20})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageStreamTransaction ( :: windows :: IInspectable ) ; impl StorageStreamTransaction { pub fn Stream < > ( & self , ) -> :: windows :: Result < Streams:: IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Streams:: IRandomAccessStream > ( result__ ) } } pub fn CommitAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl :: windows :: RuntimeType for StorageStreamTransaction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageStreamTransaction;{f67cf363-a53d-4d94-ae2c-67232d93acdd})" ) ; } unsafe impl :: windows :: Interface for StorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } impl :: windows :: RuntimeName for StorageStreamTransaction { const NAME : & 'static str ="Windows.Storage.StorageStreamTransaction" ; } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : StorageStreamTransaction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : & StorageStreamTransaction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : StorageStreamTransaction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : & StorageStreamTransaction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageStreamTransaction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageStreamTransaction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequest ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StreamedFileDataRequest { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } unsafe impl :: windows :: RuntimeType for StreamedFileDataRequest { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StreamedFileDataRequest;{905a0fe6-bc53-11df-8c49-001e4fc686da})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StreamedFileDataRequestedHandler ( :: windows :: IUnknown , ) where ; impl < > StreamedFileDataRequestedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = StreamedFileDataRequestedHandler_box :: < F > { vtable : & StreamedFileDataRequestedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , StreamedFileDataRequest > , > ( & self , stream : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for StreamedFileDataRequestedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({fef6a824-2fe1-4d07-a35b-b77c50b5f4cc})" ) ; } unsafe impl < > :: windows :: Interface for StreamedFileDataRequestedHandler { type Vtable = StreamedFileDataRequestedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4277577764 ,12257 ,19719 , [ 163 ,91 ,183 ,124 ,80 ,181 ,244 ,204 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequestedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct StreamedFileDataRequestedHandler_box < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const StreamedFileDataRequestedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > StreamedFileDataRequestedHandler_box :: < F > { const VTABLE : StreamedFileDataRequestedHandler_abi = StreamedFileDataRequestedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < StreamedFileDataRequestedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & stream as * const < StreamedFileDataRequest as :: windows :: Abi > :: Abi as * const < StreamedFileDataRequest as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileProperties { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BasicProperties ( :: windows :: IInspectable ) ; impl BasicProperties { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn DateModified < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn ItemDate < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BasicProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.BasicProperties;{d05d55db-785e-4a66-be02-9beec58aea81})" ) ; } unsafe impl :: windows :: Interface for BasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } impl :: windows :: RuntimeName for BasicProperties { const NAME : & 'static str ="Windows.Storage.FileProperties.BasicProperties" ; } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IUnknown { fn from ( value : BasicProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IUnknown { fn from ( value : & BasicProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IInspectable { fn from ( value : BasicProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IInspectable { fn from ( value : & BasicProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : BasicProperties ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : & BasicProperties ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: std :: convert :: TryInto :: < IStorageItemExtraProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBasicProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBasicProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemContentProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{05294bad-bc38-48bf-85d7-770e0e2ae0ba}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemExtraProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemExtraProperties { type Vtable = IStorageItemExtraProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3309527474 ,21709 ,17195 , [ 189 ,188 ,75 ,25 ,196 ,180 ,112 ,215 ] , ) ; } impl < > IStorageItemExtraProperties { pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemExtraProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c54361b2-54cd-432b-bdbc-4b19c4b470d7}" ) ; } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemExtraProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemExtraProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemExtraProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemExtraProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemExtraProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestoretrieve : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestosave : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IThumbnailProperties { type Vtable = IThumbnailProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1765659695 ,56295 ,18869 , [ 179 ,179 ,40 ,147 ,172 ,93 ,52 ,35 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut ThumbnailType ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemContentProperties ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemContentProperties;{05294bad-bc38-48bf-85d7-770e0e2ae0ba})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageItemThumbnail ( :: windows :: IInspectable ) ; impl StorageItemThumbnail { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn OriginalWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OriginalHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReturnedSmallerCachedSize < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < ThumbnailType > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < ThumbnailType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < ThumbnailType > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StorageItemThumbnail { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemThumbnail;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for StorageItemThumbnail { type Vtable = super::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for StorageItemThumbnail { const NAME : & 'static str ="Windows.Storage.FileProperties.StorageItemThumbnail" ; } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : StorageItemThumbnail ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : & StorageItemThumbnail ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailMode ( pub i32 ) ; impl ThumbnailMode { pub const PicturesView : ThumbnailMode = ThumbnailMode ( 0i32 ) ; pub const VideosView : ThumbnailMode = ThumbnailMode ( 1i32 ) ; pub const MusicView : ThumbnailMode = ThumbnailMode ( 2i32 ) ; pub const DocumentsView : ThumbnailMode = ThumbnailMode ( 3i32 ) ; pub const ListView : ThumbnailMode = ThumbnailMode ( 4i32 ) ; pub const SingleItem : ThumbnailMode = ThumbnailMode ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailOptions ( pub u32 ) ; impl ThumbnailOptions { pub const None : ThumbnailOptions = ThumbnailOptions ( 0u32 ) ; pub const ReturnOnlyIfCached : ThumbnailOptions = ThumbnailOptions ( 1u32 ) ; pub const ResizeThumbnail : ThumbnailOptions = ThumbnailOptions ( 2u32 ) ; pub const UseCurrentScale : ThumbnailOptions = ThumbnailOptions ( 4u32 ) ; } impl :: std :: convert :: From < u32 > for ThumbnailOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailOptions;u4)" ) ; } impl :: std :: ops :: BitOr for ThumbnailOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for ThumbnailOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for ThumbnailOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for ThumbnailOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for ThumbnailOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailType ( pub i32 ) ; impl ThumbnailType { pub const Image : ThumbnailType = ThumbnailType ( 0i32 ) ; pub const Icon : ThumbnailType = ThumbnailType ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailType;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Search { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFileQuery ( pub i32 ) ; impl CommonFileQuery { pub const DefaultQuery : CommonFileQuery = CommonFileQuery ( 0i32 ) ; pub const OrderByName : CommonFileQuery = CommonFileQuery ( 1i32 ) ; pub const OrderByTitle : CommonFileQuery = CommonFileQuery ( 2i32 ) ; pub const OrderByMusicProperties : CommonFileQuery = CommonFileQuery ( 3i32 ) ; pub const OrderBySearchRank : CommonFileQuery = CommonFileQuery ( 4i32 ) ; pub const OrderByDate : CommonFileQuery = CommonFileQuery ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFileQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFileQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFileQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFileQuery;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFolderQuery ( pub i32 ) ; impl CommonFolderQuery { pub const DefaultQuery : CommonFolderQuery = CommonFolderQuery ( 0i32 ) ; pub const GroupByYear : CommonFolderQuery = CommonFolderQuery ( 100i32 ) ; pub const GroupByMonth : CommonFolderQuery = CommonFolderQuery ( 101i32 ) ; pub const GroupByArtist : CommonFolderQuery = CommonFolderQuery ( 102i32 ) ; pub const GroupByAlbum : CommonFolderQuery = CommonFolderQuery ( 103i32 ) ; pub const GroupByAlbumArtist : CommonFolderQuery = CommonFolderQuery ( 104i32 ) ; pub const GroupByComposer : CommonFolderQuery = CommonFolderQuery ( 105i32 ) ; pub const GroupByGenre : CommonFolderQuery = CommonFolderQuery ( 106i32 ) ; pub const GroupByPublishedYear : CommonFolderQuery = CommonFolderQuery ( 107i32 ) ; pub const GroupByRating : CommonFolderQuery = CommonFolderQuery ( 108i32 ) ; pub const GroupByTag : CommonFolderQuery = CommonFolderQuery ( 109i32 ) ; pub const GroupByAuthor : CommonFolderQuery = CommonFolderQuery ( 110i32 ) ; pub const GroupByType : CommonFolderQuery = CommonFolderQuery ( 111i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFolderQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFolderQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFolderQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFolderQuery;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IQueryOptions ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IQueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IQueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{1e5e46ee-0f45-4838-a8e9-d0479d446c30}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{52fda447-2baa-412c-b29f-d4b1778efa1e}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolderQueryOperations ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryOperations { type Vtable = IStorageFolderQueryOperations_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3410218185 ,17515 ,19023 , [ 190 ,151 ,117 ,119 ,113 ,190 ,82 ,3 ] , ) ; } impl < > IStorageFolderQueryOperations { pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IndexedState > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryOperations { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cb43ccc9-446b-4a4f-be97-757771be5203}" ) ; } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : IStorageFolderQueryOperations ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : & IStorageFolderQueryOperations ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : IStorageFolderQueryOperations ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : & IStorageFolderQueryOperations ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryOperations_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{6654c911-7d66-46fa-aecf-e4a4baa93ab8}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e8948079-9d58-47b8-b2b2-41b07f4795f9}" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct IndexedState ( pub i32 ) ; impl IndexedState { pub const Unknown : IndexedState = IndexedState ( 0i32 ) ; pub const NotIndexed : IndexedState = IndexedState ( 1i32 ) ; pub const PartiallyIndexed : IndexedState = IndexedState ( 2i32 ) ; pub const FullyIndexed : IndexedState = IndexedState ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for IndexedState { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for IndexedState { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for IndexedState { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.IndexedState;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct QueryOptions ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for QueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl :: windows :: RuntimeType for QueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.QueryOptions;{1e5e46ee-0f45-4838-a8e9-d0479d446c30})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFileQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFileQueryResult;{52fda447-2baa-412c-b29f-d4b1778efa1e})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFolderQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFolderQueryResult;{6654c911-7d66-46fa-aecf-e4a4baa93ab8})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageItemQueryResult;{e8948079-9d58-47b8-b2b2-41b07f4795f9})" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Streams { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBuffer { type Vtable = IBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821408 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IBuffer { pub fn Capacity < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Length < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetLength < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe0-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IUnknown { fn from ( value : IBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IUnknown { fn from ( value : & IBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IInspectable { fn from ( value : IBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IInspectable { fn from ( value : & IBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IContentTypeProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IContentTypeProvider { type Vtable = IContentTypeProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2547030181 ,15257 ,19945 , [ 136 ,165 ,225 ,29 ,47 ,80 ,199 ,149 ] , ) ; } impl < > IContentTypeProvider { pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IContentTypeProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{97d098a5-3b99-4de9-88a5-e11d2f50c795}" ) ; } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : IContentTypeProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : & IContentTypeProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : IContentTypeProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : & IContentTypeProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IContentTypeProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStream { type Vtable = IInputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821410 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IInputStream { pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe2-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IUnknown { fn from ( value : IInputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IUnknown { fn from ( value : & IInputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IInspectable { fn from ( value : IInputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IInspectable { fn from ( value : & IInputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IInputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IInputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , count : u32 , options : InputStreamOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStreamReference { type Vtable = IInputStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133681944 ,24265 ,19290 , [ 145 ,156 ,66 ,5 ,176 ,200 ,4 ,182 ] , ) ; } impl < > IInputStreamReference { pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IInputStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IInputStream > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{43929d18-5ec9-4b5a-919c-4205b0c804b6}" ) ; } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IUnknown { fn from ( value : IInputStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IUnknown { fn from ( value : & IInputStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IInspectable { fn from ( value : IInputStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IInspectable { fn from ( value : & IInputStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IOutputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOutputStream { type Vtable = IOutputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IOutputStream { pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IOutputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe6-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IUnknown { fn from ( value : IOutputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IUnknown { fn from ( value : & IOutputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IInspectable { fn from ( value : IOutputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IInspectable { fn from ( value : & IOutputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IOutputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IOutputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOutputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStream { type Vtable = IRandomAccessStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821409 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IRandomAccessStream { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = self ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = self ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe1-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : IRandomAccessStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : IRandomAccessStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamReference { type Vtable = IRandomAccessStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 871248180 ,7638 ,20026 , [ 128 ,103 ,209 ,193 ,98 ,232 ,100 ,43 ] , ) ; } impl < > IRandomAccessStreamReference { pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{33ee3134-1dd6-4e3a-8067-d1c162e8642b}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamWithContentType ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamWithContentType { type Vtable = IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl < > IRandomAccessStreamWithContentType { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamWithContentType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cc254827-4b3d-438f-9232-10c76bc7e038}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: std :: convert :: TryInto :: < IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: std :: convert :: TryInto :: < IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamWithContentType_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct InputStreamOptions ( pub u32 ) ; impl InputStreamOptions { pub const None : InputStreamOptions = InputStreamOptions ( 0u32 ) ; pub const Partial : InputStreamOptions = InputStreamOptions ( 1u32 ) ; pub const ReadAhead : InputStreamOptions = InputStreamOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for InputStreamOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for InputStreamOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for InputStreamOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Streams.InputStreamOptions;u4)" ) ; } impl :: std :: ops :: BitOr for InputStreamOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for InputStreamOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for InputStreamOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for InputStreamOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for InputStreamOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUser ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUser { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IUser { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{df9a26c6-e746-4bcd-b5d4-120103c4209b}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct User ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for User { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl :: windows :: RuntimeType for User { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.System.User;{df9a26c6-e746-4bcd-b5d4-120103c4209b})" ) ; } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/win_ocr_bindings-6e1ac750950c780f/out/windows.rs:1:9262 [INFO] [stdout] | [INFO] [stdout] 1 | ...( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( thi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > AsyncActionCompletedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionCompletedHandler_box :: < F > { vtable : & AsyncActionCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncAction > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7})" ) ; } unsafe impl < > :: windows :: Interface for AsyncActionCompletedHandler { type Vtable = AsyncActionCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2767019137 ,30409 ,16573 , [ 139 ,230 ,177 ,217 ,15 ,178 ,10 ,231 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct AsyncActionCompletedHandler_box < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const AsyncActionCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionCompletedHandler_box :: < F > { const VTABLE : AsyncActionCompletedHandler_abi = AsyncActionCompletedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncActionCompletedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncAction as :: windows :: Abi > :: Abi as * const < IAsyncAction as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationCompletedHandler < TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , > AsyncOperationCompletedHandler < TResult > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationCompletedHandler_box :: < TResult , F > { vtable : & AsyncOperationCompletedHandler_box :: < TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{fcdcf02c-e5d8-4478-915a-4d90b74b83a5}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationCompletedHandler < TResult > { type Vtable = AsyncOperationCompletedHandler_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationCompletedHandler < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationCompletedHandler_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationCompletedHandler_box < TResult , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationCompletedHandler_abi < TResult > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationCompletedHandler_box :: < TResult , F > { const VTABLE : AsyncOperationCompletedHandler_abi < TResult > = AsyncOperationCompletedHandler_abi :: < TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationCompletedHandler < TResult > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { let _ = Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: Abi as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationProgressHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationProgressHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationProgressHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , Param1 : :: windows :: IntoParam < 'a , TProgress > , > ( & self , asyncinfo : Param0 , progressinfo : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationProgressHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{55690902-0aab-421a-8778-f8ce5026d758}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationProgressHandler < TResult , TProgress > { type Vtable = AsyncOperationProgressHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationProgressHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationProgressHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationProgressHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationProgressHandler_abi < TResult , TProgress > = AsyncOperationProgressHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationWithProgressCompletedHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e85df41d-6aa7-46e3-a8e2-f009d840c627}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type Vtable = AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationWithProgressCompletedHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > = AsyncOperationWithProgressCompletedHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AsyncStatus ( pub i32 ) ; impl AsyncStatus { pub const Canceled : AsyncStatus = AsyncStatus ( 2i32 ) ; pub const Completed : AsyncStatus = AsyncStatus ( 1i32 ) ; pub const Error : AsyncStatus = AsyncStatus ( 3i32 ) ; pub const Started : AsyncStatus = AsyncStatus ( 0i32 ) ; } impl :: std :: convert :: From < i32 > for AsyncStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AsyncStatus { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & self . UniversalTime ) . finish ( ) } } impl :: std :: cmp :: PartialEq for DateTime { fn eq ( & self , other : & Self ) -> bool { self . UniversalTime == other . UniversalTime } } impl :: std :: cmp :: Eq for DateTime { } unsafe impl :: windows :: Abi for DateTime { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for DateTime { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.DateTime;i8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncAction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncAction { type Vtable = IAsyncAction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1516535814 ,33850 ,19881 , [ 134 ,91 ,157 ,38 ,229 ,223 ,173 ,123 ] , ) ; } impl < > IAsyncAction { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionCompletedHandler > { let this = self ; unsafe { let mut result__ : < AsyncActionCompletedHandler as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < > :: windows :: RuntimeType for IAsyncAction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{5a648006-843a-4da9-865b-9d26e5dfad7b}" ) ; } impl < > :: std :: future :: Future for IAsyncAction { type Output = :: windows :: Result < ( ) > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IUnknown { fn from ( value : IAsyncAction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IUnknown { fn from ( value : & IAsyncAction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IInspectable { fn from ( value : IAsyncAction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IInspectable { fn from ( value : & IAsyncAction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncAction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncAction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < > :: std :: marker :: Send for IAsyncAction { } unsafe impl < > :: std :: marker :: Sync for IAsyncAction { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncAction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncInfo ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncInfo { type Vtable = IAsyncInfo_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 54 ,0 ,0 , [ 192 ,0 ,0 ,0 ,0 ,0 ,0 ,70 ] , ) ; } impl < > IAsyncInfo { pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = self ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = self ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IUnknown { fn from ( value : IAsyncInfo ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IUnknown { fn from ( value : & IAsyncInfo ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IInspectable { fn from ( value : IAsyncInfo ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IInspectable { fn from ( value : & IAsyncInfo ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncInfo_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut AsyncStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: HRESULT ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperation < TResult > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperation < TResult > { type Vtable = IAsyncOperation_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperation < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , > IAsyncOperation < TResult > { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationCompletedHandler < TResult > > { let this = self ; unsafe { let mut result__ : < AsyncOperationCompletedHandler < TResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationCompletedHandler < TResult > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperation < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9fc2b0bb-e446-44e2-aa61-9cab8f636af2}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperation < TResult > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : IAsyncOperation < TResult > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : IAsyncOperation < TResult > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperation < TResult > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperation < TResult > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperation < TResult > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperation_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperationWithProgress < TResult , TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperationWithProgress < TResult , TProgress > { type Vtable = IAsyncOperationWithProgress_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > IAsyncOperationWithProgress < TResult , TProgress > { pub fn SetProgress < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncOperationProgressHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperationWithProgress < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{b5d036d7-e297-498f-ba60-0289e76e23dd}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperationWithProgress < TResult , TProgress > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperationWithProgress < TResult , TProgress > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperationWithProgress < TResult , TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperationWithProgress_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IClosable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IClosable { type Vtable = IClosable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 819308585 ,32676 ,16422 , [ 131 ,187 ,215 ,91 ,174 ,78 ,169 ,158 ] , ) ; } impl < > IClosable { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } impl < > :: std :: convert :: From < IClosable > for :: windows :: IUnknown { fn from ( value : IClosable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IUnknown { fn from ( value : & IClosable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IClosable > for :: windows :: IInspectable { fn from ( value : IClosable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IInspectable { fn from ( value : & IClosable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IClosable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IPropertyValue ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValue { type Vtable = IPropertyValue_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1272349405 ,30036 ,16617 , [ 154 ,155 ,130 ,101 ,78 ,222 ,126 ,98 ] , ) ; } impl < > IPropertyValue { pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = self ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = self ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = self ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = self ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = self ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = self ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = self ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = self ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = self ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = self ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IUnknown { fn from ( value : IPropertyValue ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IUnknown { fn from ( value : & IPropertyValue ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IInspectable { fn from ( value : IPropertyValue ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IInspectable { fn from ( value : & IPropertyValue ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValue_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PropertyType ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Rect ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IReference < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReference < T > { type Vtable = IReference_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReference < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReference < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17706-2d65-11e0-9ae8-d48564015472}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IUnknown { fn from ( value : IReference < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IUnknown { fn from ( value : & IReference < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IInspectable { fn from ( value : IReference < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IInspectable { fn from ( value : & IReference < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : IReference < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : & IReference < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: std :: convert :: TryInto :: < IPropertyValue > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReference_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStringable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStringable { type Vtable = IStringable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2520162132 ,36534 ,18672 , [ 171 ,206 ,193 ,178 ,17 ,230 ,39 ,195 ] , ) ; } impl < > IStringable { pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } impl < > :: std :: convert :: From < IStringable > for :: windows :: IUnknown { fn from ( value : IStringable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IUnknown { fn from ( value : & IStringable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStringable > for :: windows :: IInspectable { fn from ( value : IStringable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IInspectable { fn from ( value : & IStringable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStringable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriEscapeStatics { type Vtable = IUriEscapeStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3251909306 ,51236 ,17490 , [ 167 ,253 ,81 ,43 ,195 ,187 ,233 ,161 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , tounescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClass { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , puri : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassFactory { type Vtable = IUriRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1151957359 ,29246 ,20447 , [ 162 ,24 ,3 ,62 ,117 ,176 ,192 ,132 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassWithAbsoluteCanonicalUri { type Vtable = IUriRuntimeClassWithAbsoluteCanonicalUri_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1972213345 ,8732 ,18447 , [ 163 ,57 ,80 ,101 ,102 ,115 ,244 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IWwwFormUrlDecoderEntry ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl < > IWwwFormUrlDecoderEntry { pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderEntry_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClass { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClassFactory { type Vtable = IWwwFormUrlDecoderRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1535929149 ,9390 ,16821 , [ 161 ,191 ,240 ,195 ,213 ,68 ,132 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Point { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y } } impl :: std :: cmp :: Eq for Point { } unsafe impl :: windows :: Abi for Point { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Point { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Point;f4;f4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PropertyType ( pub i32 ) ; impl PropertyType { pub const Empty : PropertyType = PropertyType ( 0i32 ) ; pub const UInt8 : PropertyType = PropertyType ( 1i32 ) ; pub const Int16 : PropertyType = PropertyType ( 2i32 ) ; pub const UInt16 : PropertyType = PropertyType ( 3i32 ) ; pub const Int32 : PropertyType = PropertyType ( 4i32 ) ; pub const UInt32 : PropertyType = PropertyType ( 5i32 ) ; pub const Int64 : PropertyType = PropertyType ( 6i32 ) ; pub const UInt64 : PropertyType = PropertyType ( 7i32 ) ; pub const Single : PropertyType = PropertyType ( 8i32 ) ; pub const Double : PropertyType = PropertyType ( 9i32 ) ; pub const Char16 : PropertyType = PropertyType ( 10i32 ) ; pub const Boolean : PropertyType = PropertyType ( 11i32 ) ; pub const String : PropertyType = PropertyType ( 12i32 ) ; pub const Inspectable : PropertyType = PropertyType ( 13i32 ) ; pub const DateTime : PropertyType = PropertyType ( 14i32 ) ; pub const TimeSpan : PropertyType = PropertyType ( 15i32 ) ; pub const Guid : PropertyType = PropertyType ( 16i32 ) ; pub const Point : PropertyType = PropertyType ( 17i32 ) ; pub const Size : PropertyType = PropertyType ( 18i32 ) ; pub const Rect : PropertyType = PropertyType ( 19i32 ) ; pub const OtherType : PropertyType = PropertyType ( 20i32 ) ; pub const UInt8Array : PropertyType = PropertyType ( 1025i32 ) ; pub const Int16Array : PropertyType = PropertyType ( 1026i32 ) ; pub const UInt16Array : PropertyType = PropertyType ( 1027i32 ) ; pub const Int32Array : PropertyType = PropertyType ( 1028i32 ) ; pub const UInt32Array : PropertyType = PropertyType ( 1029i32 ) ; pub const Int64Array : PropertyType = PropertyType ( 1030i32 ) ; pub const UInt64Array : PropertyType = PropertyType ( 1031i32 ) ; pub const SingleArray : PropertyType = PropertyType ( 1032i32 ) ; pub const DoubleArray : PropertyType = PropertyType ( 1033i32 ) ; pub const Char16Array : PropertyType = PropertyType ( 1034i32 ) ; pub const BooleanArray : PropertyType = PropertyType ( 1035i32 ) ; pub const StringArray : PropertyType = PropertyType ( 1036i32 ) ; pub const InspectableArray : PropertyType = PropertyType ( 1037i32 ) ; pub const DateTimeArray : PropertyType = PropertyType ( 1038i32 ) ; pub const TimeSpanArray : PropertyType = PropertyType ( 1039i32 ) ; pub const GuidArray : PropertyType = PropertyType ( 1040i32 ) ; pub const PointArray : PropertyType = PropertyType ( 1041i32 ) ; pub const SizeArray : PropertyType = PropertyType ( 1042i32 ) ; pub const RectArray : PropertyType = PropertyType ( 1043i32 ) ; pub const OtherTypeArray : PropertyType = PropertyType ( 1044i32 ) ; } impl :: std :: convert :: From < i32 > for PropertyType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PropertyType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for PropertyType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Rect { pub X : f32 , pub Y : f32 , pub Width : f32 , pub Height : f32 } impl Rect { } impl :: std :: default :: Default for Rect { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Rect { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y && self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Rect { } unsafe impl :: windows :: Abi for Rect { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Rect { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Size { fn eq ( & self , other : & Self ) -> bool { self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Size { } unsafe impl :: windows :: Abi for Size { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Size { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & self . Duration ) . finish ( ) } } impl :: std :: cmp :: PartialEq for TimeSpan { fn eq ( & self , other : & Self ) -> bool { self . Duration == other . Duration } } impl :: std :: cmp :: Eq for TimeSpan { } unsafe impl :: windows :: Abi for TimeSpan { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for TimeSpan { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.TimeSpan;i8)" ) ; } impl :: std :: convert :: From < :: std :: time :: Duration > for TimeSpan { fn from ( value : :: std :: time :: Duration ) -> Self { Self { Duration : ( value . as_nanos ( ) / 100 ) as i64 , } } } impl :: std :: convert :: From < TimeSpan > for :: std :: time :: Duration { fn from ( value : TimeSpan ) -> Self { :: std :: time :: Duration :: from_nanos ( ( value . Duration * 100 ) as u64 ) } } impl < 'a > :: windows :: IntoParam < 'a , TimeSpan > for :: std :: time :: Duration { fn into_param ( self ) -> :: windows :: Param < 'a , TimeSpan > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Uri ( :: windows :: IInspectable ) ; impl Uri { pub fn AbsoluteUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Domain < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Extension < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Fragment < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Host < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Password < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Query < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn QueryParsed < > ( & self , ) -> :: windows :: Result < WwwFormUrlDecoder > { let this = self ; unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } } pub fn RawUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn SchemeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UserName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Port < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn Suspicious < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , Param0 : :: windows :: IntoParam < 'a , Uri > , > ( & self , puri : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , relativeuri : Param0 , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } } pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStringable > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( tounescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( toescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( uri : Param0 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( baseuri : Param0 , relativeuri : Param1 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , baseuri . into_param ( ) . abi ( ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn IUriEscapeStatics < R , F : FnOnce ( & IUriEscapeStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriEscapeStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IUriRuntimeClassFactory < R , F : FnOnce ( & IUriRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Uri { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Uri;{9e365e57-48b2-4160-956f-c7385120bbfc})" ) ; } unsafe impl :: windows :: Interface for Uri { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } impl :: windows :: RuntimeName for Uri { const NAME : & 'static str ="Windows.Foundation.Uri" ; } impl < > :: std :: convert :: From < Uri > for :: windows :: IUnknown { fn from ( value : Uri ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IUnknown { fn from ( value : & Uri ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Uri > for :: windows :: IInspectable { fn from ( value : Uri ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IInspectable { fn from ( value : & Uri ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : Uri ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : & Uri ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: std :: convert :: TryInto :: < IStringable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for Uri { } unsafe impl :: std :: marker :: Sync for Uri { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoder ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoder { pub fn GetFirstValueByName < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > { let this = & :: windows :: Interface :: cast :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > ( result__ ) } } pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < IWwwFormUrlDecoderEntry > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( query : Param0 , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , query . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } ) } pub fn IWwwFormUrlDecoderRuntimeClassFactory < R , F : FnOnce ( & IWwwFormUrlDecoderRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < WwwFormUrlDecoder , IWwwFormUrlDecoderRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoder;{d45a0451-f225-4542-9296-0e1df5d254df})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoder { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoder { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoder" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : WwwFormUrlDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoder { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoder { } impl < > :: std :: iter :: IntoIterator for WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < > :: std :: iter :: IntoIterator for & WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( :: std :: convert :: TryInto :: try_into ( self ) . ok ( ) ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Collections { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterable < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterable < T > { type Vtable = IIterable_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterable < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterable < T > { pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = self ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{faa585ea-6214-4217-afda-7f46de5869b3}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IUnknown { fn from ( value : IIterable < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IUnknown { fn from ( value : & IIterable < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IInspectable { fn from ( value : IIterable < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IInspectable { fn from ( value : & IIterable < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterable_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterator < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterator < T > { type Vtable = IIterator_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterator < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterator < T > { pub fn Current < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn HasCurrent < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn MoveNext < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterator < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6a79e863-4300-459a-9966-cbb660963ee1}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IUnknown { fn from ( value : IIterator < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IUnknown { fn from ( value : & IIterator < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IInspectable { fn from ( value : IIterator < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IInspectable { fn from ( value : & IIterator < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for IIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { let result = self . Current ( ) . ok ( ) ; if result . is_some ( ) { self . MoveNext ( ) . ok ( ) ? ; } result } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterator_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IKeyValuePair < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IKeyValuePair < K , V > { type Vtable = IKeyValuePair_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IKeyValuePair < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IKeyValuePair < K , V > { pub fn Key < > ( & self , ) -> :: windows :: Result < K > { let this = self ; unsafe { let mut result__ : < K as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < K > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IKeyValuePair < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{02b51929-c1c4-4a7e-8940-0312b5c18500}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : IKeyValuePair < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : & IKeyValuePair < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : IKeyValuePair < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : & IKeyValuePair < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IKeyValuePair_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMap < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMap < K , V > { type Vtable = IMap_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMap < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMap < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IMapView < K , V > > { let this = self ; unsafe { let mut result__ : < IMapView < K , V > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IMapView < K , V > > ( result__ ) } } pub fn Insert < 'a , Param0 : :: windows :: IntoParam < 'a , K > , Param1 : :: windows :: IntoParam < 'a , V > , > ( & self , key : Param0 , value : Param1 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Remove < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMap < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{3c2925fe-8519-45c1-aa79-197b6718c1c1}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IUnknown { fn from ( value : IMap < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IUnknown { fn from ( value : & IMap < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IInspectable { fn from ( value : IMap < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IInspectable { fn from ( value : & IMap < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMap < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMap < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMap_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , value : < V as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMapView < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMapView < K , V > { type Vtable = IMapView_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMapView < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMapView < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Split < > ( & self , first : & mut :: std :: option :: Option < IMapView < K , V > > , second : & mut :: std :: option :: Option < IMapView < K , V > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , first as * mut _ as _ , second as * mut _ as _ , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMapView < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e480ce40-a338-4ada-adcf-272272e48cb9}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : IMapView < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : & IMapView < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : IMapView < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : & IMapView < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMapView < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMapView < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMapView_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , first : * mut :: windows :: RawPtr , second : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVector < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVector < T > { type Vtable = IVector_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVector < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVector < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IVectorView < T > > { let this = self ; unsafe { let mut result__ : < IVectorView < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IVectorView < T > > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn InsertAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAt < > ( & self , index : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , index , ) . ok ( ) } } pub fn Append < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAtEnd < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReplaceAll < > ( & self , items : & [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute ( items . as_ptr ( ) ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVector < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{913337e9-11a1-4345-a3a2-4e7f956e222d}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IUnknown { fn from ( value : IVector < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IUnknown { fn from ( value : & IVector < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IInspectable { fn from ( value : IVector < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IInspectable { fn from ( value : & IVector < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVector < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVector < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVector < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVector < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVector_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * const < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVectorView < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVectorView < T > { type Vtable = IVectorView_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVectorView < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVectorView < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{bbe1fa4c-b0e3-4583-baef-1f1b2e483e56}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IUnknown { fn from ( value : IVectorView < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IUnknown { fn from ( value : & IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IInspectable { fn from ( value : IVectorView < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IInspectable { fn from ( value : & IVectorView < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVectorView < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVectorView < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVectorView < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVectorView < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVectorView_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Globalization { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage2 { type Vtable = ILanguage2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1783096757 ,55629 ,18566 , [ 164 ,4 ,165 ,165 ,185 ,213 ,180 ,148 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut LanguageLayoutDirection ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage3 { type Vtable = ILanguage3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3333373200 ,25626 ,23460 , [ 187 ,67 ,94 ,18 ,174 ,215 ,89 ,84 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageExtensionSubtags { type Vtable = ILanguageExtensionSubtags_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2105388869 ,13965 ,17252 , [ 133 ,43 ,222 ,201 ,39 ,3 ,123 ,133 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , singleton : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageFactory { type Vtable = ILanguageFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2600620716 ,3111 ,17656 , [ 183 ,146 ,151 ,147 ,251 ,102 ,198 ,62 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics { type Vtable = ILanguageStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2990331223 ,2149 ,18132 , [ 137 ,184 ,213 ,155 ,232 ,153 ,15 ,13 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics2 { type Vtable = ILanguageStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 806985582 ,37195 ,19242 , [ 157 ,110 ,227 ,176 ,226 ,125 ,190 ,79 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics3 { type Vtable = ILanguageStatics3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3512650586 ,29150 ,22354 , [ 149 ,66 ,250 ,197 ,180 ,242 ,114 ,97 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetags : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Language ( :: windows :: IInspectable ) ; impl Language { pub fn LanguageTag < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn NativeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Script < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetExtensionSubtags < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , singleton : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = & :: windows :: Interface :: cast :: < ILanguageExtensionSubtags > ( self ) ? ; unsafe { let mut result__ : < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , singleton . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn CreateLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < Language > { Self :: ILanguageFactory ( | this | unsafe { let mut result__ : < Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Language > ( result__ ) } ) } pub fn IsWellFormed < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn CurrentInputMethodLanguageTag < > ( ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn TrySetInputMethodLanguageTag < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn LayoutDirection < > ( & self , ) -> :: windows :: Result < LanguageLayoutDirection > { let this = & :: windows :: Interface :: cast :: < ILanguage2 > ( self ) ? ; unsafe { let mut result__ : < LanguageLayoutDirection as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < LanguageLayoutDirection > ( result__ ) } } pub fn AbbreviatedName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < ILanguage3 > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetMuiCompatibleLanguageListFromLanguageTags < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( languagetags : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > { Self :: ILanguageStatics3 ( | this | unsafe { let mut result__ : < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetags . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > ( result__ ) } ) } pub fn ILanguageFactory < R , F : FnOnce ( & ILanguageFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics < R , F : FnOnce ( & ILanguageStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics2 < R , F : FnOnce ( & ILanguageStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics3 < R , F : FnOnce ( & ILanguageStatics3 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics3 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Language { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Globalization.Language;{ea79a752-f7c2-4265-b1bd-c4dec4e4f080})" ) ; } unsafe impl :: windows :: Interface for Language { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } impl :: windows :: RuntimeName for Language { const NAME : & 'static str ="Windows.Globalization.Language" ; } impl < > :: std :: convert :: From < Language > for :: windows :: IUnknown { fn from ( value : Language ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Language > for :: windows :: IUnknown { fn from ( value : & Language ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Language > for :: windows :: IInspectable { fn from ( value : Language ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Language > for :: windows :: IInspectable { fn from ( value : & Language ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Language { } unsafe impl :: std :: marker :: Sync for Language { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct LanguageLayoutDirection ( pub i32 ) ; impl LanguageLayoutDirection { pub const Ltr : LanguageLayoutDirection = LanguageLayoutDirection ( 0i32 ) ; pub const Rtl : LanguageLayoutDirection = LanguageLayoutDirection ( 1i32 ) ; pub const TtbLtr : LanguageLayoutDirection = LanguageLayoutDirection ( 2i32 ) ; pub const TtbRtl : LanguageLayoutDirection = LanguageLayoutDirection ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for LanguageLayoutDirection { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for LanguageLayoutDirection { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for LanguageLayoutDirection { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Globalization.LanguageLayoutDirection;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Graphics { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod DirectX { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Direct3D11 { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IDirect3DSurface ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDirect3DSurface { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 200581446 ,5057 ,18068 , [ 190 ,227 ,122 ,191 ,21 ,234 ,245 ,134 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IDirect3DSurface { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{0bf4a146-13c1-4694-bee3-7abf15eaf586}" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Imaging { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapAlphaMode ( pub i32 ) ; impl BitmapAlphaMode { pub const Premultiplied : BitmapAlphaMode = BitmapAlphaMode ( 0i32 ) ; pub const Straight : BitmapAlphaMode = BitmapAlphaMode ( 1i32 ) ; pub const Ignore : BitmapAlphaMode = BitmapAlphaMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapAlphaMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapAlphaMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapAlphaMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapAlphaMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapBuffer ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapBuffer;{a53e04c4-399c-438c-b28f-a63a6b83d1a1})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapBufferAccessMode ( pub i32 ) ; impl BitmapBufferAccessMode { pub const Read : BitmapBufferAccessMode = BitmapBufferAccessMode ( 0i32 ) ; pub const ReadWrite : BitmapBufferAccessMode = BitmapBufferAccessMode ( 1i32 ) ; pub const Write : BitmapBufferAccessMode = BitmapBufferAccessMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapBufferAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapBufferAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapBufferAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapBufferAccessMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapCodecInformation ( :: windows :: IInspectable ) ; impl BitmapCodecInformation { pub fn CodecId < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn FileExtensions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn FriendlyName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn MimeTypes < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapCodecInformation { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapCodecInformation;{400caaf2-c4b0-4392-a3b0-6f6f9ba95cb4})" ) ; } unsafe impl :: windows :: Interface for BitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } impl :: windows :: RuntimeName for BitmapCodecInformation { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapCodecInformation" ; } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : BitmapCodecInformation ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : & BitmapCodecInformation ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : BitmapCodecInformation ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : & BitmapCodecInformation ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for BitmapCodecInformation { } unsafe impl :: std :: marker :: Sync for BitmapCodecInformation { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapDecoder ( :: windows :: IInspectable ) ; impl BitmapDecoder { pub fn BitmapContainerProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn DecoderInformation < > ( & self , ) -> :: windows :: Result < BitmapCodecInformation > { let this = self ; unsafe { let mut result__ : < BitmapCodecInformation as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapCodecInformation > ( result__ ) } } pub fn FrameCount < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPreviewAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn GetFrameAsync < > ( & self , frameindex : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , frameindex , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn BmpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn PngDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn TiffDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegXRDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IcoDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GetDecoderInformationEnumerator < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > ( result__ ) } ) } pub fn CreateAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( stream : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn CreateWithIdAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: Guid > , Param1 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( decoderid : Param0 , stream : Param1 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , decoderid . into_param ( ) . abi ( ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn HeifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn WebpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IBitmapDecoderStatics < R , F : FnOnce ( & IBitmapDecoderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IBitmapDecoderStatics2 < R , F : FnOnce ( & IBitmapDecoderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for BitmapDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapDecoder;{acef22ba-1d74-4c91-9dfc-9620745233e6})" ) ; } unsafe impl :: windows :: Interface for BitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } impl :: windows :: RuntimeName for BitmapDecoder { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapDecoder" ; } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IUnknown { fn from ( value : BitmapDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IUnknown { fn from ( value : & BitmapDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IInspectable { fn from ( value : BitmapDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IInspectable { fn from ( value : & BitmapDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapDecoder { } unsafe impl :: std :: marker :: Sync for BitmapDecoder { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapFrame ( :: windows :: IInspectable ) ; impl BitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapFrame;{72a49a1c-8081-438d-91bc-94ecfc8185c6})" ) ; } unsafe impl :: windows :: Interface for BitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl :: windows :: RuntimeName for BitmapFrame { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapFrame" ; } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IUnknown { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IUnknown { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IInspectable { fn from ( value : BitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IInspectable { fn from ( value : & BitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < BitmapFrame > for IBitmapFrame { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for IBitmapFrame { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapFrame ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapFrame ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapFrame { } unsafe impl :: std :: marker :: Sync for BitmapFrame { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapPixelFormat ( pub i32 ) ; impl BitmapPixelFormat { pub const Unknown : BitmapPixelFormat = BitmapPixelFormat ( 0i32 ) ; pub const Rgba16 : BitmapPixelFormat = BitmapPixelFormat ( 12i32 ) ; pub const Rgba8 : BitmapPixelFormat = BitmapPixelFormat ( 30i32 ) ; pub const Gray16 : BitmapPixelFormat = BitmapPixelFormat ( 57i32 ) ; pub const Gray8 : BitmapPixelFormat = BitmapPixelFormat ( 62i32 ) ; pub const Bgra8 : BitmapPixelFormat = BitmapPixelFormat ( 87i32 ) ; pub const Nv12 : BitmapPixelFormat = BitmapPixelFormat ( 103i32 ) ; pub const P010 : BitmapPixelFormat = BitmapPixelFormat ( 104i32 ) ; pub const Yuy2 : BitmapPixelFormat = BitmapPixelFormat ( 107i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapPixelFormat { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapPixelFormat { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapPixelFormat { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapPixelFormat;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapPropertiesView ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapPropertiesView;{7e0fe87a-3a70-48f8-9c55-196cf5a545f5})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapTransform ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapTransform;{ae755344-e268-4d35-adcf-e995d31a8d34})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ColorManagementMode ( pub i32 ) ; impl ColorManagementMode { pub const DoNotColorManage : ColorManagementMode = ColorManagementMode ( 0i32 ) ; pub const ColorManageToSRgb : ColorManagementMode = ColorManagementMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ColorManagementMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ColorManagementMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ColorManagementMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ColorManagementMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ExifOrientationMode ( pub i32 ) ; impl ExifOrientationMode { pub const IgnoreExifOrientation : ExifOrientationMode = ExifOrientationMode ( 0i32 ) ; pub const RespectExifOrientation : ExifOrientationMode = ExifOrientationMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ExifOrientationMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ExifOrientationMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ExifOrientationMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ExifOrientationMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{a53e04c4-399c-438c-b28f-a63a6b83d1a1}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , frameindex : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics { type Vtable = IBitmapDecoderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133300518 ,48367 ,20117 , [ 186 ,214 ,35 ,168 ,34 ,229 ,141 ,1 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , decoderid : :: windows :: Guid , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics2 { type Vtable = IBitmapDecoderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1354393834 ,39329 ,16580 , [ 128 ,217 ,174 ,240 ,218 ,250 ,108 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrame ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl < > IBitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72a49a1c-8081-438d-91bc-94ecfc8185c6}" ) ; } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IUnknown { fn from ( value : IBitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IUnknown { fn from ( value : & IBitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IInspectable { fn from ( value : IBitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IInspectable { fn from ( value : & IBitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrame_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrameWithSoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrameWithSoftwareBitmap { type Vtable = IBitmapFrameWithSoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4264066202 ,16908 ,18787 , [ 135 ,173 ,105 ,20 ,54 ,224 ,131 ,131 ] , ) ; } impl < > IBitmapFrameWithSoftwareBitmap { pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrameWithSoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fe287c9a-420c-4963-87ad-691436e08383}" ) ; } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrameWithSoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapPropertiesView ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{7e0fe87a-3a70-48f8-9c55-196cf5a545f5}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapTransform ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{ae755344-e268-4d35-adcf-e995d31a8d34}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result_size__ : * mut u32 , result__ : * mut * mut u8 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : BitmapBufferAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapFactory { type Vtable = ISoftwareBitmapFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382700905 ,11618 ,19783 , [ 166 ,179 ,79 ,219 ,106 ,7 ,253 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapStatics { type Vtable = ISoftwareBitmapStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3741550043 ,26415 ,19101 , [ 128 ,110 ,194 ,68 ,47 ,52 ,62 ,134 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct ImageStream ( :: windows :: IInspectable ) ; impl ImageStream { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::super::Storage::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::super::Storage::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for ImageStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.ImageStream;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for ImageStream { type Vtable = super::super::Storage::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for ImageStream { const NAME : & 'static str ="Windows.Graphics.Imaging.ImageStream" ; } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IUnknown { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IUnknown { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IInspectable { fn from ( value : ImageStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IInspectable { fn from ( value : & ImageStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for ImageStream { } unsafe impl :: std :: marker :: Sync for ImageStream { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PixelDataProvider ( :: windows :: IInspectable ) ; impl PixelDataProvider { pub fn DetachPixelData < > ( & self , ) -> :: windows :: Result < :: windows :: Array < u8 > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < u8 > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , :: windows :: Array :: < u8 > :: set_abi_len ( & mut result__ ) , & mut result__ as * mut _ as _ ) . and_then ( || result__ ) } } } unsafe impl :: windows :: RuntimeType for PixelDataProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.PixelDataProvider;{dd831f25-185c-4595-9fb9-ccbe6ec18a6f})" ) ; } unsafe impl :: windows :: Interface for PixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } impl :: windows :: RuntimeName for PixelDataProvider { const NAME : & 'static str ="Windows.Graphics.Imaging.PixelDataProvider" ; } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IUnknown { fn from ( value : PixelDataProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IUnknown { fn from ( value : & PixelDataProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IInspectable { fn from ( value : PixelDataProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IInspectable { fn from ( value : & PixelDataProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PixelDataProvider { } unsafe impl :: std :: marker :: Sync for PixelDataProvider { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct SoftwareBitmap ( :: windows :: IInspectable ) ; impl SoftwareBitmap { pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn IsReadOnly < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetDpiX < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetDpiY < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn LockBuffer < > ( & self , mode : BitmapBufferAccessMode , ) -> :: windows :: Result < BitmapBuffer > { let this = self ; unsafe { let mut result__ : < BitmapBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < BitmapBuffer > ( result__ ) } } pub fn CopyTo < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyToBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetReadOnlyView < > ( & self , ) -> :: windows :: Result < SoftwareBitmap > { let this = self ; unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Create < > ( format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateWithAlpha < > ( format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Copy < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Convert < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn ConvertWithAlpha < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , alpha , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn ISoftwareBitmapFactory < R , F : FnOnce ( & ISoftwareBitmapFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ISoftwareBitmapStatics < R , F : FnOnce ( & ISoftwareBitmapStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for SoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.SoftwareBitmap;{689e0708-7eef-483f-963f-da938818e073})" ) ; } unsafe impl :: windows :: Interface for SoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } impl :: windows :: RuntimeName for SoftwareBitmap { const NAME : & 'static str ="Windows.Graphics.Imaging.SoftwareBitmap" ; } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : SoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & SoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : SoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & SoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : SoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & SoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for SoftwareBitmap { } unsafe impl :: std :: marker :: Sync for SoftwareBitmap { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Media { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Ocr { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngineStatics { type Vtable = IOcrEngineStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1543481434 ,13188 ,13632 , [ 153 ,64 ,105 ,145 ,32 ,212 ,40 ,168 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrLine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrLine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrResult_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrWord ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrWord_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrEngine ( :: windows :: IInspectable ) ; impl OcrEngine { pub fn RecognizeAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Graphics::Imaging:: SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < OcrResult > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < OcrResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < OcrResult > > ( result__ ) } } pub fn RecognizerLanguage < > ( & self , ) -> :: windows :: Result < super::super::Globalization:: Language > { let this = self ; unsafe { let mut result__ : < super::super::Globalization:: Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Globalization:: Language > ( result__ ) } } pub fn MaxImageDimension < > ( ) -> :: windows :: Result < u32 > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } ) } pub fn AvailableRecognizerLanguages < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > ( result__ ) } ) } pub fn IsLanguageSupported < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < bool > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn TryCreateFromLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn TryCreateFromUserProfileLanguages < > ( ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn IOcrEngineStatics < R , F : FnOnce ( & IOcrEngineStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < OcrEngine , IOcrEngineStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for OcrEngine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrEngine;{5a14bc41-5b76-3140-b680-8825562683ac})" ) ; } unsafe impl :: windows :: Interface for OcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } impl :: windows :: RuntimeName for OcrEngine { const NAME : & 'static str ="Windows.Media.Ocr.OcrEngine" ; } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IUnknown { fn from ( value : OcrEngine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IUnknown { fn from ( value : & OcrEngine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IInspectable { fn from ( value : OcrEngine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IInspectable { fn from ( value : & OcrEngine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrEngine { } unsafe impl :: std :: marker :: Sync for OcrEngine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrLine ( :: windows :: IInspectable ) ; impl OcrLine { pub fn Words < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrWord > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrLine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrLine;{0043a16f-e31f-3a24-899c-d444bd088124})" ) ; } unsafe impl :: windows :: Interface for OcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } impl :: windows :: RuntimeName for OcrLine { const NAME : & 'static str ="Windows.Media.Ocr.OcrLine" ; } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IUnknown { fn from ( value : OcrLine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IUnknown { fn from ( value : & OcrLine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IInspectable { fn from ( value : OcrLine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IInspectable { fn from ( value : & OcrLine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrLine { } unsafe impl :: std :: marker :: Sync for OcrLine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrResult ( :: windows :: IInspectable ) ; impl OcrResult { pub fn Lines < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrLine > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > ( result__ ) } } pub fn TextAngle < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < f64 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < f64 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrResult;{9bd235b2-175b-3d6a-92e2-388c206e2f63})" ) ; } unsafe impl :: windows :: Interface for OcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } impl :: windows :: RuntimeName for OcrResult { const NAME : & 'static str ="Windows.Media.Ocr.OcrResult" ; } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IUnknown { fn from ( value : OcrResult ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IUnknown { fn from ( value : & OcrResult ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IInspectable { fn from ( value : OcrResult ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IInspectable { fn from ( value : & OcrResult ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrResult { } unsafe impl :: std :: marker :: Sync for OcrResult { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrWord ( :: windows :: IInspectable ) ; impl OcrWord { pub fn BoundingRect < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: Rect > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: Rect > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrWord { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrWord;{3c2a477a-5cd9-3525-ba2a-23d1e0a68a1d})" ) ; } unsafe impl :: windows :: Interface for OcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } impl :: windows :: RuntimeName for OcrWord { const NAME : & 'static str ="Windows.Media.Ocr.OcrWord" ; } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IUnknown { fn from ( value : OcrWord ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IUnknown { fn from ( value : & OcrWord ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IInspectable { fn from ( value : OcrWord ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IInspectable { fn from ( value : & OcrWord ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrWord { } unsafe impl :: std :: marker :: Sync for OcrWord { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CreationCollisionOption ( pub i32 ) ; impl CreationCollisionOption { pub const GenerateUniqueName : CreationCollisionOption = CreationCollisionOption ( 0i32 ) ; pub const ReplaceExisting : CreationCollisionOption = CreationCollisionOption ( 1i32 ) ; pub const FailIfExists : CreationCollisionOption = CreationCollisionOption ( 2i32 ) ; pub const OpenIfExists : CreationCollisionOption = CreationCollisionOption ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for CreationCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CreationCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CreationCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.CreationCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAccessMode ( pub i32 ) ; impl FileAccessMode { pub const Read : FileAccessMode = FileAccessMode ( 0i32 ) ; pub const ReadWrite : FileAccessMode = FileAccessMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for FileAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAccessMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAttributes ( pub u32 ) ; impl FileAttributes { pub const Normal : FileAttributes = FileAttributes ( 0u32 ) ; pub const ReadOnly : FileAttributes = FileAttributes ( 1u32 ) ; pub const Directory : FileAttributes = FileAttributes ( 16u32 ) ; pub const Archive : FileAttributes = FileAttributes ( 32u32 ) ; pub const Temporary : FileAttributes = FileAttributes ( 256u32 ) ; pub const LocallyIncomplete : FileAttributes = FileAttributes ( 512u32 ) ; } impl :: std :: convert :: From < u32 > for FileAttributes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAttributes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAttributes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAttributes;u4)" ) ; } impl :: std :: ops :: BitOr for FileAttributes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for FileAttributes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for FileAttributes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for FileAttributes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for FileAttributes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl < > IStorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fa3f6186-4214-428c-a64c-14c9ac7315ea}" ) ; } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IUnknown { fn from ( value : IStorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IUnknown { fn from ( value : & IStorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IInspectable { fn from ( value : IStorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IInspectable { fn from ( value : & IStorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile2 { type Vtable = IStorageFile2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2504936399 ,2679 ,17147 , [ 183 ,119 ,194 ,237 ,88 ,165 ,46 ,68 ] , ) ; } impl < > IStorageFile2 { pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{954e4bcf-0a77-42fb-b777-c2ed58a52e44}" ) ; } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IUnknown { fn from ( value : IStorageFile2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IUnknown { fn from ( value : & IStorageFile2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IInspectable { fn from ( value : IStorageFile2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IInspectable { fn from ( value : & IStorageFile2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFilePropertiesWithAvailability ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFilePropertiesWithAvailability { type Vtable = IStorageFilePropertiesWithAvailability_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2949365403 ,22571 ,16691 , [ 150 ,72 ,228 ,76 ,164 ,110 ,228 ,145 ] , ) ; } impl < > IStorageFilePropertiesWithAvailability { pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFilePropertiesWithAvailability { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{afcbbe9b-582b-4133-9648-e44ca46ee491}" ) ; } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFilePropertiesWithAvailability_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics { type Vtable = IStorageFileStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1501873936 ,56050 ,17352 , [ 139 ,180 ,164 ,211 ,234 ,207 ,208 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics2 { type Vtable = IStorageFileStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1551280001 ,8494 ,19193 , [ 143 ,4 ,116 ,12 ,174 ,16 ,137 ,116 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl < > IStorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b}" ) ; } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IUnknown { fn from ( value : IStorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IUnknown { fn from ( value : & IStorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IInspectable { fn from ( value : IStorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IInspectable { fn from ( value : & IStorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder2 { type Vtable = IStorageFolder2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3894929593 ,2265 ,19086 , [ 160 ,172 ,254 ,94 ,211 ,203 ,187 ,211 ] , ) ; } impl < > IStorageFolder2 { pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e827e8b9-08d9-4a8e-a0ac-fe5ed3cbbbd3}" ) ; } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : IStorageFolder2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : & IStorageFolder2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : IStorageFolder2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : & IStorageFolder2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder3 { type Vtable = IStorageFolder3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2673965209 ,48609 ,16676 , [ 174 ,179 ,176 ,106 ,217 ,111 ,152 ,212 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics { type Vtable = IStorageFolderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 150153215 ,34261 ,18617 , [ 174 ,233 ,40 ,81 ,30 ,51 ,159 ,159 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics2 { type Vtable = IStorageFolderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3026546115 ,29138 ,18045 , [ 139 ,41 ,55 ,31 ,15 ,98 ,191 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem { type Vtable = IStorageItem_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1107798422 ,51759 ,17143 , [ 189 ,232 ,139 ,16 ,69 ,122 ,127 ,48 ] , ) ; } impl < > IStorageItem { pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = self ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4207a996-ca2f-42f7-bde8-8b10457a7f30}" ) ; } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IUnknown { fn from ( value : IStorageItem ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IUnknown { fn from ( value : & IStorageItem ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IInspectable { fn from ( value : IStorageItem ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IInspectable { fn from ( value : & IStorageItem ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , option : StorageDeleteOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut FileAttributes ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , r#type : StorageItemTypes , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem2 { type Vtable = IStorageItem2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1408837330 ,2108 ,17027 , [ 180 ,91 ,129 ,192 ,7 ,35 ,126 ,68 ] , ) ; } impl < > IStorageItem2 { pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{53f926d2-083c-4283-b45b-81c007237e44}" ) ; } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IUnknown { fn from ( value : IStorageItem2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IUnknown { fn from ( value : & IStorageItem2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IInspectable { fn from ( value : IStorageItem2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IInspectable { fn from ( value : & IStorageItem2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageItem2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItem2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , item : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties { type Vtable = IStorageItemProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2254849144 ,32809 ,18174 , [ 167 ,137 ,28 ,47 ,62 ,47 ,251 ,92 ] , ) ; } impl < > IStorageItemProperties { pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = self ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{86664478-8029-46fe-a789-1c2f3e2ffb5c}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties2 { type Vtable = IStorageItemProperties2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2391189841 ,1209 ,19410 , [ 146 ,157 ,254 ,243 ,247 ,22 ,33 ,208 ] , ) ; } impl < > IStorageItemProperties2 { pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{8e86a951-04b9-4bd2-929d-fef3f71621d0}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemPropertiesWithProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemPropertiesWithProvider { type Vtable = IStorageItemPropertiesWithProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2249978779 ,25448 ,19950 , [ 180 ,14 ,116 ,104 ,74 ,92 ,231 ,20 ] , ) ; } impl < > IStorageItemPropertiesWithProvider { pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = self ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemPropertiesWithProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{861bf39b-6368-4dee-b40e-74684a5ce714}" ) ; } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemPropertiesWithProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageLibraryChangeTracker ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{9e157316-6073-44f6-9681-7492d1286c90}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e705eed4-d478-47d6-ba46-1a8ebe114a20}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct NameCollisionOption ( pub i32 ) ; impl NameCollisionOption { pub const GenerateUniqueName : NameCollisionOption = NameCollisionOption ( 0i32 ) ; pub const ReplaceExisting : NameCollisionOption = NameCollisionOption ( 1i32 ) ; pub const FailIfExists : NameCollisionOption = NameCollisionOption ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for NameCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for NameCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for NameCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.NameCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageDeleteOption ( pub i32 ) ; impl StorageDeleteOption { pub const Default : StorageDeleteOption = StorageDeleteOption ( 0i32 ) ; pub const PermanentDelete : StorageDeleteOption = StorageDeleteOption ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for StorageDeleteOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageDeleteOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageDeleteOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageDeleteOption;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFile ( :: windows :: IInspectable ) ; impl StorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageFilePropertiesWithAvailability > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } pub fn GetFileFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromApplicationUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , > ( uri : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn IStorageFileStatics < R , F : FnOnce ( & IStorageFileStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFileStatics2 < R , F : FnOnce ( & IStorageFileStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFile;{fa3f6186-4214-428c-a64c-14c9ac7315ea})" ) ; } unsafe impl :: windows :: Interface for StorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl :: windows :: RuntimeName for StorageFile { const NAME : & 'static str ="Windows.Storage.StorageFile" ; } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IUnknown { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IUnknown { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IInspectable { fn from ( value : StorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IInspectable { fn from ( value : & StorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFile > for IStorageFile { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for IStorageFile { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: std :: convert :: TryInto :: < IStorageFile2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: std :: convert :: TryInto :: < IStorageFilePropertiesWithAvailability > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFolder ( :: windows :: IInspectable ) ; impl StorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = & :: windows :: Interface :: cast :: < IStorageFolder2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : Search:: CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : Search:: CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetFolderFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn TryGetChangeTracker < > ( & self , ) -> :: windows :: Result < StorageLibraryChangeTracker > { let this = & :: windows :: Interface :: cast :: < IStorageFolder3 > ( self ) ? ; unsafe { let mut result__ : < StorageLibraryChangeTracker as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageLibraryChangeTracker > ( result__ ) } } pub fn GetFolderFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn IStorageFolderStatics < R , F : FnOnce ( & IStorageFolderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFolderStatics2 < R , F : FnOnce ( & IStorageFolderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFolder;{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b})" ) ; } unsafe impl :: windows :: Interface for StorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl :: windows :: RuntimeName for StorageFolder { const NAME : & 'static str ="Windows.Storage.StorageFolder" ; } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IUnknown { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IUnknown { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IInspectable { fn from ( value : StorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IInspectable { fn from ( value : & StorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFolder > for IStorageFolder { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for IStorageFolder { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: std :: convert :: TryInto :: < IStorageFolder2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: std :: convert :: TryInto :: < Search:: IStorageFolderQueryOperations > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageItemTypes ( pub u32 ) ; impl StorageItemTypes { pub const None : StorageItemTypes = StorageItemTypes ( 0u32 ) ; pub const File : StorageItemTypes = StorageItemTypes ( 1u32 ) ; pub const Folder : StorageItemTypes = StorageItemTypes ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageItemTypes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageItemTypes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageItemTypes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageItemTypes;u4)" ) ; } impl :: std :: ops :: BitOr for StorageItemTypes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageItemTypes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageItemTypes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageItemTypes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageItemTypes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageLibraryChangeTracker ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageLibraryChangeTracker;{9e157316-6073-44f6-9681-7492d1286c90})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageOpenOptions ( pub u32 ) ; impl StorageOpenOptions { pub const None : StorageOpenOptions = StorageOpenOptions ( 0u32 ) ; pub const AllowOnlyReaders : StorageOpenOptions = StorageOpenOptions ( 1u32 ) ; pub const AllowReadersAndWriters : StorageOpenOptions = StorageOpenOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageOpenOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageOpenOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageOpenOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageOpenOptions;u4)" ) ; } impl :: std :: ops :: BitOr for StorageOpenOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageOpenOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageOpenOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageOpenOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageOpenOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageProvider ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageProvider;{e705eed4-d478-47d6-ba46-1a8ebe114a20})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageStreamTransaction ( :: windows :: IInspectable ) ; impl StorageStreamTransaction { pub fn Stream < > ( & self , ) -> :: windows :: Result < Streams:: IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Streams:: IRandomAccessStream > ( result__ ) } } pub fn CommitAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl :: windows :: RuntimeType for StorageStreamTransaction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageStreamTransaction;{f67cf363-a53d-4d94-ae2c-67232d93acdd})" ) ; } unsafe impl :: windows :: Interface for StorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } impl :: windows :: RuntimeName for StorageStreamTransaction { const NAME : & 'static str ="Windows.Storage.StorageStreamTransaction" ; } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : StorageStreamTransaction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : & StorageStreamTransaction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : StorageStreamTransaction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : & StorageStreamTransaction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageStreamTransaction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageStreamTransaction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequest ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StreamedFileDataRequest { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } unsafe impl :: windows :: RuntimeType for StreamedFileDataRequest { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StreamedFileDataRequest;{905a0fe6-bc53-11df-8c49-001e4fc686da})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StreamedFileDataRequestedHandler ( :: windows :: IUnknown , ) where ; impl < > StreamedFileDataRequestedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = StreamedFileDataRequestedHandler_box :: < F > { vtable : & StreamedFileDataRequestedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , StreamedFileDataRequest > , > ( & self , stream : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for StreamedFileDataRequestedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({fef6a824-2fe1-4d07-a35b-b77c50b5f4cc})" ) ; } unsafe impl < > :: windows :: Interface for StreamedFileDataRequestedHandler { type Vtable = StreamedFileDataRequestedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4277577764 ,12257 ,19719 , [ 163 ,91 ,183 ,124 ,80 ,181 ,244 ,204 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequestedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct StreamedFileDataRequestedHandler_box < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const StreamedFileDataRequestedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > StreamedFileDataRequestedHandler_box :: < F > { const VTABLE : StreamedFileDataRequestedHandler_abi = StreamedFileDataRequestedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < StreamedFileDataRequestedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & stream as * const < StreamedFileDataRequest as :: windows :: Abi > :: Abi as * const < StreamedFileDataRequest as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileProperties { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BasicProperties ( :: windows :: IInspectable ) ; impl BasicProperties { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn DateModified < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn ItemDate < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BasicProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.BasicProperties;{d05d55db-785e-4a66-be02-9beec58aea81})" ) ; } unsafe impl :: windows :: Interface for BasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } impl :: windows :: RuntimeName for BasicProperties { const NAME : & 'static str ="Windows.Storage.FileProperties.BasicProperties" ; } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IUnknown { fn from ( value : BasicProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IUnknown { fn from ( value : & BasicProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IInspectable { fn from ( value : BasicProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IInspectable { fn from ( value : & BasicProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : BasicProperties ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : & BasicProperties ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: std :: convert :: TryInto :: < IStorageItemExtraProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBasicProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBasicProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemContentProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{05294bad-bc38-48bf-85d7-770e0e2ae0ba}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemExtraProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemExtraProperties { type Vtable = IStorageItemExtraProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3309527474 ,21709 ,17195 , [ 189 ,188 ,75 ,25 ,196 ,180 ,112 ,215 ] , ) ; } impl < > IStorageItemExtraProperties { pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemExtraProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c54361b2-54cd-432b-bdbc-4b19c4b470d7}" ) ; } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemExtraProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemExtraProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemExtraProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemExtraProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemExtraProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestoretrieve : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestosave : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IThumbnailProperties { type Vtable = IThumbnailProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1765659695 ,56295 ,18869 , [ 179 ,179 ,40 ,147 ,172 ,93 ,52 ,35 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut ThumbnailType ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemContentProperties ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemContentProperties;{05294bad-bc38-48bf-85d7-770e0e2ae0ba})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageItemThumbnail ( :: windows :: IInspectable ) ; impl StorageItemThumbnail { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn OriginalWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OriginalHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReturnedSmallerCachedSize < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < ThumbnailType > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < ThumbnailType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < ThumbnailType > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StorageItemThumbnail { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemThumbnail;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for StorageItemThumbnail { type Vtable = super::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for StorageItemThumbnail { const NAME : & 'static str ="Windows.Storage.FileProperties.StorageItemThumbnail" ; } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : StorageItemThumbnail ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : & StorageItemThumbnail ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailMode ( pub i32 ) ; impl ThumbnailMode { pub const PicturesView : ThumbnailMode = ThumbnailMode ( 0i32 ) ; pub const VideosView : ThumbnailMode = ThumbnailMode ( 1i32 ) ; pub const MusicView : ThumbnailMode = ThumbnailMode ( 2i32 ) ; pub const DocumentsView : ThumbnailMode = ThumbnailMode ( 3i32 ) ; pub const ListView : ThumbnailMode = ThumbnailMode ( 4i32 ) ; pub const SingleItem : ThumbnailMode = ThumbnailMode ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailOptions ( pub u32 ) ; impl ThumbnailOptions { pub const None : ThumbnailOptions = ThumbnailOptions ( 0u32 ) ; pub const ReturnOnlyIfCached : ThumbnailOptions = ThumbnailOptions ( 1u32 ) ; pub const ResizeThumbnail : ThumbnailOptions = ThumbnailOptions ( 2u32 ) ; pub const UseCurrentScale : ThumbnailOptions = ThumbnailOptions ( 4u32 ) ; } impl :: std :: convert :: From < u32 > for ThumbnailOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailOptions;u4)" ) ; } impl :: std :: ops :: BitOr for ThumbnailOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for ThumbnailOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for ThumbnailOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for ThumbnailOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for ThumbnailOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailType ( pub i32 ) ; impl ThumbnailType { pub const Image : ThumbnailType = ThumbnailType ( 0i32 ) ; pub const Icon : ThumbnailType = ThumbnailType ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailType;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Search { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFileQuery ( pub i32 ) ; impl CommonFileQuery { pub const DefaultQuery : CommonFileQuery = CommonFileQuery ( 0i32 ) ; pub const OrderByName : CommonFileQuery = CommonFileQuery ( 1i32 ) ; pub const OrderByTitle : CommonFileQuery = CommonFileQuery ( 2i32 ) ; pub const OrderByMusicProperties : CommonFileQuery = CommonFileQuery ( 3i32 ) ; pub const OrderBySearchRank : CommonFileQuery = CommonFileQuery ( 4i32 ) ; pub const OrderByDate : CommonFileQuery = CommonFileQuery ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFileQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFileQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFileQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFileQuery;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFolderQuery ( pub i32 ) ; impl CommonFolderQuery { pub const DefaultQuery : CommonFolderQuery = CommonFolderQuery ( 0i32 ) ; pub const GroupByYear : CommonFolderQuery = CommonFolderQuery ( 100i32 ) ; pub const GroupByMonth : CommonFolderQuery = CommonFolderQuery ( 101i32 ) ; pub const GroupByArtist : CommonFolderQuery = CommonFolderQuery ( 102i32 ) ; pub const GroupByAlbum : CommonFolderQuery = CommonFolderQuery ( 103i32 ) ; pub const GroupByAlbumArtist : CommonFolderQuery = CommonFolderQuery ( 104i32 ) ; pub const GroupByComposer : CommonFolderQuery = CommonFolderQuery ( 105i32 ) ; pub const GroupByGenre : CommonFolderQuery = CommonFolderQuery ( 106i32 ) ; pub const GroupByPublishedYear : CommonFolderQuery = CommonFolderQuery ( 107i32 ) ; pub const GroupByRating : CommonFolderQuery = CommonFolderQuery ( 108i32 ) ; pub const GroupByTag : CommonFolderQuery = CommonFolderQuery ( 109i32 ) ; pub const GroupByAuthor : CommonFolderQuery = CommonFolderQuery ( 110i32 ) ; pub const GroupByType : CommonFolderQuery = CommonFolderQuery ( 111i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFolderQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFolderQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFolderQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFolderQuery;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IQueryOptions ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IQueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IQueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{1e5e46ee-0f45-4838-a8e9-d0479d446c30}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{52fda447-2baa-412c-b29f-d4b1778efa1e}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolderQueryOperations ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryOperations { type Vtable = IStorageFolderQueryOperations_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3410218185 ,17515 ,19023 , [ 190 ,151 ,117 ,119 ,113 ,190 ,82 ,3 ] , ) ; } impl < > IStorageFolderQueryOperations { pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IndexedState > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryOperations { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cb43ccc9-446b-4a4f-be97-757771be5203}" ) ; } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : IStorageFolderQueryOperations ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : & IStorageFolderQueryOperations ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : IStorageFolderQueryOperations ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : & IStorageFolderQueryOperations ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryOperations_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{6654c911-7d66-46fa-aecf-e4a4baa93ab8}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e8948079-9d58-47b8-b2b2-41b07f4795f9}" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct IndexedState ( pub i32 ) ; impl IndexedState { pub const Unknown : IndexedState = IndexedState ( 0i32 ) ; pub const NotIndexed : IndexedState = IndexedState ( 1i32 ) ; pub const PartiallyIndexed : IndexedState = IndexedState ( 2i32 ) ; pub const FullyIndexed : IndexedState = IndexedState ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for IndexedState { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for IndexedState { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for IndexedState { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.IndexedState;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct QueryOptions ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for QueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl :: windows :: RuntimeType for QueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.QueryOptions;{1e5e46ee-0f45-4838-a8e9-d0479d446c30})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFileQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFileQueryResult;{52fda447-2baa-412c-b29f-d4b1778efa1e})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFolderQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFolderQueryResult;{6654c911-7d66-46fa-aecf-e4a4baa93ab8})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageItemQueryResult;{e8948079-9d58-47b8-b2b2-41b07f4795f9})" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Streams { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBuffer { type Vtable = IBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821408 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IBuffer { pub fn Capacity < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Length < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetLength < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe0-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IUnknown { fn from ( value : IBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IUnknown { fn from ( value : & IBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IInspectable { fn from ( value : IBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IInspectable { fn from ( value : & IBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IContentTypeProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IContentTypeProvider { type Vtable = IContentTypeProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2547030181 ,15257 ,19945 , [ 136 ,165 ,225 ,29 ,47 ,80 ,199 ,149 ] , ) ; } impl < > IContentTypeProvider { pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IContentTypeProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{97d098a5-3b99-4de9-88a5-e11d2f50c795}" ) ; } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : IContentTypeProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : & IContentTypeProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : IContentTypeProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : & IContentTypeProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IContentTypeProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStream { type Vtable = IInputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821410 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IInputStream { pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe2-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IUnknown { fn from ( value : IInputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IUnknown { fn from ( value : & IInputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IInspectable { fn from ( value : IInputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IInspectable { fn from ( value : & IInputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IInputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IInputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , count : u32 , options : InputStreamOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStreamReference { type Vtable = IInputStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133681944 ,24265 ,19290 , [ 145 ,156 ,66 ,5 ,176 ,200 ,4 ,182 ] , ) ; } impl < > IInputStreamReference { pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IInputStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IInputStream > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{43929d18-5ec9-4b5a-919c-4205b0c804b6}" ) ; } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IUnknown { fn from ( value : IInputStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IUnknown { fn from ( value : & IInputStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IInspectable { fn from ( value : IInputStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IInspectable { fn from ( value : & IInputStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IOutputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOutputStream { type Vtable = IOutputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IOutputStream { pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IOutputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe6-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IUnknown { fn from ( value : IOutputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IUnknown { fn from ( value : & IOutputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IInspectable { fn from ( value : IOutputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IInspectable { fn from ( value : & IOutputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IOutputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IOutputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOutputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStream { type Vtable = IRandomAccessStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821409 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IRandomAccessStream { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = self ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = self ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe1-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : IRandomAccessStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : IRandomAccessStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamReference { type Vtable = IRandomAccessStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 871248180 ,7638 ,20026 , [ 128 ,103 ,209 ,193 ,98 ,232 ,100 ,43 ] , ) ; } impl < > IRandomAccessStreamReference { pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{33ee3134-1dd6-4e3a-8067-d1c162e8642b}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamWithContentType ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamWithContentType { type Vtable = IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl < > IRandomAccessStreamWithContentType { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamWithContentType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cc254827-4b3d-438f-9232-10c76bc7e038}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: std :: convert :: TryInto :: < IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: std :: convert :: TryInto :: < IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamWithContentType_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct InputStreamOptions ( pub u32 ) ; impl InputStreamOptions { pub const None : InputStreamOptions = InputStreamOptions ( 0u32 ) ; pub const Partial : InputStreamOptions = InputStreamOptions ( 1u32 ) ; pub const ReadAhead : InputStreamOptions = InputStreamOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for InputStreamOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for InputStreamOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for InputStreamOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Streams.InputStreamOptions;u4)" ) ; } impl :: std :: ops :: BitOr for InputStreamOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for InputStreamOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for InputStreamOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for InputStreamOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for InputStreamOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUser ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUser { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IUser { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{df9a26c6-e746-4bcd-b5d4-120103c4209b}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct User ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for User { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl :: windows :: RuntimeType for User { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.System.User;{df9a26c6-e746-4bcd-b5d4-120103c4209b})" ) ; } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/win_ocr_bindings-6e1ac750950c780f/out/windows.rs:1:4102 [INFO] [stdout] | [INFO] [stdout] 1 | ...( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( thi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > AsyncActionCompletedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionCompletedHandler_box :: < F > { vtable : & AsyncActionCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncAction > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7})" ) ; } unsafe impl < > :: windows :: Interface for AsyncActionCompletedHandler { type Vtable = AsyncActionCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2767019137 ,30409 ,16573 , [ 139 ,230 ,177 ,217 ,15 ,178 ,10 ,231 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct AsyncActionCompletedHandler_box < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const AsyncActionCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionCompletedHandler_box :: < F > { const VTABLE : AsyncActionCompletedHandler_abi = AsyncActionCompletedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncActionCompletedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { let _ = Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncAction as :: windows :: Abi > :: Abi as * const < IAsyncAction as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationCompletedHandler < TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , > AsyncOperationCompletedHandler < TResult > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationCompletedHandler_box :: < TResult , F > { vtable : & AsyncOperationCompletedHandler_box :: < TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{fcdcf02c-e5d8-4478-915a-4d90b74b83a5}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationCompletedHandler < TResult > { type Vtable = AsyncOperationCompletedHandler_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationCompletedHandler < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationCompletedHandler_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationCompletedHandler_box < TResult , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationCompletedHandler_abi < TResult > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationCompletedHandler_box :: < TResult , F > { const VTABLE : AsyncOperationCompletedHandler_abi < TResult > = AsyncOperationCompletedHandler_abi :: < TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationCompletedHandler < TResult > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: Abi as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationProgressHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationProgressHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationProgressHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , Param1 : :: windows :: IntoParam < 'a , TProgress > , > ( & self , asyncinfo : Param0 , progressinfo : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationProgressHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{55690902-0aab-421a-8778-f8ce5026d758}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationProgressHandler < TResult , TProgress > { type Vtable = AsyncOperationProgressHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationProgressHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationProgressHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationProgressHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationProgressHandler_abi < TResult , TProgress > = AsyncOperationProgressHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationWithProgressCompletedHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e85df41d-6aa7-46e3-a8e2-f009d840c627}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type Vtable = AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationWithProgressCompletedHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > = AsyncOperationWithProgressCompletedHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AsyncStatus ( pub i32 ) ; impl AsyncStatus { pub const Canceled : AsyncStatus = AsyncStatus ( 2i32 ) ; pub const Completed : AsyncStatus = AsyncStatus ( 1i32 ) ; pub const Error : AsyncStatus = AsyncStatus ( 3i32 ) ; pub const Started : AsyncStatus = AsyncStatus ( 0i32 ) ; } impl :: std :: convert :: From < i32 > for AsyncStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AsyncStatus { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & self . UniversalTime ) . finish ( ) } } impl :: std :: cmp :: PartialEq for DateTime { fn eq ( & self , other : & Self ) -> bool { self . UniversalTime == other . UniversalTime } } impl :: std :: cmp :: Eq for DateTime { } unsafe impl :: windows :: Abi for DateTime { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for DateTime { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.DateTime;i8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncAction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncAction { type Vtable = IAsyncAction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1516535814 ,33850 ,19881 , [ 134 ,91 ,157 ,38 ,229 ,223 ,173 ,123 ] , ) ; } impl < > IAsyncAction { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionCompletedHandler > { let this = self ; unsafe { let mut result__ : < AsyncActionCompletedHandler as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < > :: windows :: RuntimeType for IAsyncAction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{5a648006-843a-4da9-865b-9d26e5dfad7b}" ) ; } impl < > :: std :: future :: Future for IAsyncAction { type Output = :: windows :: Result < ( ) > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IUnknown { fn from ( value : IAsyncAction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IUnknown { fn from ( value : & IAsyncAction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IInspectable { fn from ( value : IAsyncAction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IInspectable { fn from ( value : & IAsyncAction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncAction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncAction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < > :: std :: marker :: Send for IAsyncAction { } unsafe impl < > :: std :: marker :: Sync for IAsyncAction { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncAction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncInfo ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncInfo { type Vtable = IAsyncInfo_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 54 ,0 ,0 , [ 192 ,0 ,0 ,0 ,0 ,0 ,0 ,70 ] , ) ; } impl < > IAsyncInfo { pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = self ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = self ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IUnknown { fn from ( value : IAsyncInfo ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IUnknown { fn from ( value : & IAsyncInfo ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IInspectable { fn from ( value : IAsyncInfo ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IInspectable { fn from ( value : & IAsyncInfo ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncInfo_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut AsyncStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: HRESULT ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperation < TResult > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperation < TResult > { type Vtable = IAsyncOperation_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperation < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , > IAsyncOperation < TResult > { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationCompletedHandler < TResult > > { let this = self ; unsafe { let mut result__ : < AsyncOperationCompletedHandler < TResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationCompletedHandler < TResult > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperation < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9fc2b0bb-e446-44e2-aa61-9cab8f636af2}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperation < TResult > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : IAsyncOperation < TResult > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : IAsyncOperation < TResult > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperation < TResult > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperation < TResult > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperation < TResult > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperation_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperationWithProgress < TResult , TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperationWithProgress < TResult , TProgress > { type Vtable = IAsyncOperationWithProgress_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > IAsyncOperationWithProgress < TResult , TProgress > { pub fn SetProgress < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncOperationProgressHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperationWithProgress < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{b5d036d7-e297-498f-ba60-0289e76e23dd}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperationWithProgress < TResult , TProgress > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperationWithProgress < TResult , TProgress > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperationWithProgress < TResult , TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperationWithProgress_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IClosable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IClosable { type Vtable = IClosable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 819308585 ,32676 ,16422 , [ 131 ,187 ,215 ,91 ,174 ,78 ,169 ,158 ] , ) ; } impl < > IClosable { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } impl < > :: std :: convert :: From < IClosable > for :: windows :: IUnknown { fn from ( value : IClosable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IUnknown { fn from ( value : & IClosable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IClosable > for :: windows :: IInspectable { fn from ( value : IClosable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IInspectable { fn from ( value : & IClosable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IClosable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IPropertyValue ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValue { type Vtable = IPropertyValue_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1272349405 ,30036 ,16617 , [ 154 ,155 ,130 ,101 ,78 ,222 ,126 ,98 ] , ) ; } impl < > IPropertyValue { pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = self ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = self ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = self ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = self ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = self ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = self ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = self ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = self ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = self ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = self ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IUnknown { fn from ( value : IPropertyValue ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IUnknown { fn from ( value : & IPropertyValue ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IInspectable { fn from ( value : IPropertyValue ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IInspectable { fn from ( value : & IPropertyValue ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValue_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PropertyType ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Rect ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IReference < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReference < T > { type Vtable = IReference_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReference < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReference < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17706-2d65-11e0-9ae8-d48564015472}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IUnknown { fn from ( value : IReference < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IUnknown { fn from ( value : & IReference < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IInspectable { fn from ( value : IReference < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IInspectable { fn from ( value : & IReference < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : IReference < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : & IReference < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: std :: convert :: TryInto :: < IPropertyValue > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReference_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStringable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStringable { type Vtable = IStringable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2520162132 ,36534 ,18672 , [ 171 ,206 ,193 ,178 ,17 ,230 ,39 ,195 ] , ) ; } impl < > IStringable { pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } impl < > :: std :: convert :: From < IStringable > for :: windows :: IUnknown { fn from ( value : IStringable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IUnknown { fn from ( value : & IStringable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStringable > for :: windows :: IInspectable { fn from ( value : IStringable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IInspectable { fn from ( value : & IStringable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStringable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriEscapeStatics { type Vtable = IUriEscapeStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3251909306 ,51236 ,17490 , [ 167 ,253 ,81 ,43 ,195 ,187 ,233 ,161 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , tounescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClass { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , puri : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassFactory { type Vtable = IUriRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1151957359 ,29246 ,20447 , [ 162 ,24 ,3 ,62 ,117 ,176 ,192 ,132 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassWithAbsoluteCanonicalUri { type Vtable = IUriRuntimeClassWithAbsoluteCanonicalUri_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1972213345 ,8732 ,18447 , [ 163 ,57 ,80 ,101 ,102 ,115 ,244 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IWwwFormUrlDecoderEntry ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl < > IWwwFormUrlDecoderEntry { pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderEntry_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClass { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClassFactory { type Vtable = IWwwFormUrlDecoderRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1535929149 ,9390 ,16821 , [ 161 ,191 ,240 ,195 ,213 ,68 ,132 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Point { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y } } impl :: std :: cmp :: Eq for Point { } unsafe impl :: windows :: Abi for Point { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Point { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Point;f4;f4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PropertyType ( pub i32 ) ; impl PropertyType { pub const Empty : PropertyType = PropertyType ( 0i32 ) ; pub const UInt8 : PropertyType = PropertyType ( 1i32 ) ; pub const Int16 : PropertyType = PropertyType ( 2i32 ) ; pub const UInt16 : PropertyType = PropertyType ( 3i32 ) ; pub const Int32 : PropertyType = PropertyType ( 4i32 ) ; pub const UInt32 : PropertyType = PropertyType ( 5i32 ) ; pub const Int64 : PropertyType = PropertyType ( 6i32 ) ; pub const UInt64 : PropertyType = PropertyType ( 7i32 ) ; pub const Single : PropertyType = PropertyType ( 8i32 ) ; pub const Double : PropertyType = PropertyType ( 9i32 ) ; pub const Char16 : PropertyType = PropertyType ( 10i32 ) ; pub const Boolean : PropertyType = PropertyType ( 11i32 ) ; pub const String : PropertyType = PropertyType ( 12i32 ) ; pub const Inspectable : PropertyType = PropertyType ( 13i32 ) ; pub const DateTime : PropertyType = PropertyType ( 14i32 ) ; pub const TimeSpan : PropertyType = PropertyType ( 15i32 ) ; pub const Guid : PropertyType = PropertyType ( 16i32 ) ; pub const Point : PropertyType = PropertyType ( 17i32 ) ; pub const Size : PropertyType = PropertyType ( 18i32 ) ; pub const Rect : PropertyType = PropertyType ( 19i32 ) ; pub const OtherType : PropertyType = PropertyType ( 20i32 ) ; pub const UInt8Array : PropertyType = PropertyType ( 1025i32 ) ; pub const Int16Array : PropertyType = PropertyType ( 1026i32 ) ; pub const UInt16Array : PropertyType = PropertyType ( 1027i32 ) ; pub const Int32Array : PropertyType = PropertyType ( 1028i32 ) ; pub const UInt32Array : PropertyType = PropertyType ( 1029i32 ) ; pub const Int64Array : PropertyType = PropertyType ( 1030i32 ) ; pub const UInt64Array : PropertyType = PropertyType ( 1031i32 ) ; pub const SingleArray : PropertyType = PropertyType ( 1032i32 ) ; pub const DoubleArray : PropertyType = PropertyType ( 1033i32 ) ; pub const Char16Array : PropertyType = PropertyType ( 1034i32 ) ; pub const BooleanArray : PropertyType = PropertyType ( 1035i32 ) ; pub const StringArray : PropertyType = PropertyType ( 1036i32 ) ; pub const InspectableArray : PropertyType = PropertyType ( 1037i32 ) ; pub const DateTimeArray : PropertyType = PropertyType ( 1038i32 ) ; pub const TimeSpanArray : PropertyType = PropertyType ( 1039i32 ) ; pub const GuidArray : PropertyType = PropertyType ( 1040i32 ) ; pub const PointArray : PropertyType = PropertyType ( 1041i32 ) ; pub const SizeArray : PropertyType = PropertyType ( 1042i32 ) ; pub const RectArray : PropertyType = PropertyType ( 1043i32 ) ; pub const OtherTypeArray : PropertyType = PropertyType ( 1044i32 ) ; } impl :: std :: convert :: From < i32 > for PropertyType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PropertyType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for PropertyType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Rect { pub X : f32 , pub Y : f32 , pub Width : f32 , pub Height : f32 } impl Rect { } impl :: std :: default :: Default for Rect { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Rect { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y && self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Rect { } unsafe impl :: windows :: Abi for Rect { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Rect { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Size { fn eq ( & self , other : & Self ) -> bool { self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Size { } unsafe impl :: windows :: Abi for Size { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Size { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & self . Duration ) . finish ( ) } } impl :: std :: cmp :: PartialEq for TimeSpan { fn eq ( & self , other : & Self ) -> bool { self . Duration == other . Duration } } impl :: std :: cmp :: Eq for TimeSpan { } unsafe impl :: windows :: Abi for TimeSpan { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for TimeSpan { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.TimeSpan;i8)" ) ; } impl :: std :: convert :: From < :: std :: time :: Duration > for TimeSpan { fn from ( value : :: std :: time :: Duration ) -> Self { Self { Duration : ( value . as_nanos ( ) / 100 ) as i64 , } } } impl :: std :: convert :: From < TimeSpan > for :: std :: time :: Duration { fn from ( value : TimeSpan ) -> Self { :: std :: time :: Duration :: from_nanos ( ( value . Duration * 100 ) as u64 ) } } impl < 'a > :: windows :: IntoParam < 'a , TimeSpan > for :: std :: time :: Duration { fn into_param ( self ) -> :: windows :: Param < 'a , TimeSpan > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Uri ( :: windows :: IInspectable ) ; impl Uri { pub fn AbsoluteUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Domain < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Extension < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Fragment < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Host < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Password < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Query < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn QueryParsed < > ( & self , ) -> :: windows :: Result < WwwFormUrlDecoder > { let this = self ; unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } } pub fn RawUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn SchemeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UserName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Port < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn Suspicious < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , Param0 : :: windows :: IntoParam < 'a , Uri > , > ( & self , puri : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , relativeuri : Param0 , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } } pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStringable > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( tounescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( toescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( uri : Param0 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( baseuri : Param0 , relativeuri : Param1 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , baseuri . into_param ( ) . abi ( ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn IUriEscapeStatics < R , F : FnOnce ( & IUriEscapeStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriEscapeStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IUriRuntimeClassFactory < R , F : FnOnce ( & IUriRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Uri { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Uri;{9e365e57-48b2-4160-956f-c7385120bbfc})" ) ; } unsafe impl :: windows :: Interface for Uri { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } impl :: windows :: RuntimeName for Uri { const NAME : & 'static str ="Windows.Foundation.Uri" ; } impl < > :: std :: convert :: From < Uri > for :: windows :: IUnknown { fn from ( value : Uri ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IUnknown { fn from ( value : & Uri ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Uri > for :: windows :: IInspectable { fn from ( value : Uri ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IInspectable { fn from ( value : & Uri ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : Uri ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : & Uri ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: std :: convert :: TryInto :: < IStringable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for Uri { } unsafe impl :: std :: marker :: Sync for Uri { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoder ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoder { pub fn GetFirstValueByName < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > { let this = & :: windows :: Interface :: cast :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > ( result__ ) } } pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < IWwwFormUrlDecoderEntry > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( query : Param0 , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , query . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } ) } pub fn IWwwFormUrlDecoderRuntimeClassFactory < R , F : FnOnce ( & IWwwFormUrlDecoderRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < WwwFormUrlDecoder , IWwwFormUrlDecoderRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoder;{d45a0451-f225-4542-9296-0e1df5d254df})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoder { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoder { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoder" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : WwwFormUrlDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoder { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoder { } impl < > :: std :: iter :: IntoIterator for WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < > :: std :: iter :: IntoIterator for & WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( :: std :: convert :: TryInto :: try_into ( self ) . ok ( ) ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Collections { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterable < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterable < T > { type Vtable = IIterable_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterable < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterable < T > { pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = self ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{faa585ea-6214-4217-afda-7f46de5869b3}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IUnknown { fn from ( value : IIterable < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IUnknown { fn from ( value : & IIterable < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IInspectable { fn from ( value : IIterable < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IInspectable { fn from ( value : & IIterable < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterable_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterator < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterator < T > { type Vtable = IIterator_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterator < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterator < T > { pub fn Current < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn HasCurrent < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn MoveNext < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterator < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6a79e863-4300-459a-9966-cbb660963ee1}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IUnknown { fn from ( value : IIterator < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IUnknown { fn from ( value : & IIterator < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IInspectable { fn from ( value : IIterator < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IInspectable { fn from ( value : & IIterator < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for IIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { let result = self . Current ( ) . ok ( ) ; if result . is_some ( ) { self . MoveNext ( ) . ok ( ) ? ; } result } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterator_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IKeyValuePair < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IKeyValuePair < K , V > { type Vtable = IKeyValuePair_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IKeyValuePair < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IKeyValuePair < K , V > { pub fn Key < > ( & self , ) -> :: windows :: Result < K > { let this = self ; unsafe { let mut result__ : < K as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < K > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IKeyValuePair < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{02b51929-c1c4-4a7e-8940-0312b5c18500}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : IKeyValuePair < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : & IKeyValuePair < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : IKeyValuePair < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : & IKeyValuePair < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IKeyValuePair_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMap < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMap < K , V > { type Vtable = IMap_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMap < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMap < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IMapView < K , V > > { let this = self ; unsafe { let mut result__ : < IMapView < K , V > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IMapView < K , V > > ( result__ ) } } pub fn Insert < 'a , Param0 : :: windows :: IntoParam < 'a , K > , Param1 : :: windows :: IntoParam < 'a , V > , > ( & self , key : Param0 , value : Param1 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Remove < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMap < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{3c2925fe-8519-45c1-aa79-197b6718c1c1}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IUnknown { fn from ( value : IMap < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IUnknown { fn from ( value : & IMap < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IInspectable { fn from ( value : IMap < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IInspectable { fn from ( value : & IMap < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMap < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMap < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMap_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , value : < V as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMapView < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMapView < K , V > { type Vtable = IMapView_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMapView < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMapView < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Split < > ( & self , first : & mut :: std :: option :: Option < IMapView < K , V > > , second : & mut :: std :: option :: Option < IMapView < K , V > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , first as * mut _ as _ , second as * mut _ as _ , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMapView < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e480ce40-a338-4ada-adcf-272272e48cb9}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : IMapView < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : & IMapView < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : IMapView < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : & IMapView < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMapView < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMapView < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMapView_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , first : * mut :: windows :: RawPtr , second : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVector < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVector < T > { type Vtable = IVector_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVector < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVector < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IVectorView < T > > { let this = self ; unsafe { let mut result__ : < IVectorView < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IVectorView < T > > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn InsertAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAt < > ( & self , index : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , index , ) . ok ( ) } } pub fn Append < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAtEnd < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReplaceAll < > ( & self , items : & [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute ( items . as_ptr ( ) ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVector < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{913337e9-11a1-4345-a3a2-4e7f956e222d}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IUnknown { fn from ( value : IVector < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IUnknown { fn from ( value : & IVector < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IInspectable { fn from ( value : IVector < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IInspectable { fn from ( value : & IVector < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVector < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVector < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVector < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVector < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVector_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * const < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVectorView < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVectorView < T > { type Vtable = IVectorView_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVectorView < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVectorView < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{bbe1fa4c-b0e3-4583-baef-1f1b2e483e56}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IUnknown { fn from ( value : IVectorView < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IUnknown { fn from ( value : & IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IInspectable { fn from ( value : IVectorView < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IInspectable { fn from ( value : & IVectorView < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVectorView < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVectorView < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVectorView < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVectorView < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVectorView_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Globalization { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage2 { type Vtable = ILanguage2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1783096757 ,55629 ,18566 , [ 164 ,4 ,165 ,165 ,185 ,213 ,180 ,148 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut LanguageLayoutDirection ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage3 { type Vtable = ILanguage3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3333373200 ,25626 ,23460 , [ 187 ,67 ,94 ,18 ,174 ,215 ,89 ,84 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageExtensionSubtags { type Vtable = ILanguageExtensionSubtags_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2105388869 ,13965 ,17252 , [ 133 ,43 ,222 ,201 ,39 ,3 ,123 ,133 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , singleton : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageFactory { type Vtable = ILanguageFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2600620716 ,3111 ,17656 , [ 183 ,146 ,151 ,147 ,251 ,102 ,198 ,62 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics { type Vtable = ILanguageStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2990331223 ,2149 ,18132 , [ 137 ,184 ,213 ,155 ,232 ,153 ,15 ,13 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics2 { type Vtable = ILanguageStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 806985582 ,37195 ,19242 , [ 157 ,110 ,227 ,176 ,226 ,125 ,190 ,79 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics3 { type Vtable = ILanguageStatics3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3512650586 ,29150 ,22354 , [ 149 ,66 ,250 ,197 ,180 ,242 ,114 ,97 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetags : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Language ( :: windows :: IInspectable ) ; impl Language { pub fn LanguageTag < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn NativeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Script < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetExtensionSubtags < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , singleton : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = & :: windows :: Interface :: cast :: < ILanguageExtensionSubtags > ( self ) ? ; unsafe { let mut result__ : < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , singleton . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn CreateLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < Language > { Self :: ILanguageFactory ( | this | unsafe { let mut result__ : < Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Language > ( result__ ) } ) } pub fn IsWellFormed < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn CurrentInputMethodLanguageTag < > ( ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn TrySetInputMethodLanguageTag < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn LayoutDirection < > ( & self , ) -> :: windows :: Result < LanguageLayoutDirection > { let this = & :: windows :: Interface :: cast :: < ILanguage2 > ( self ) ? ; unsafe { let mut result__ : < LanguageLayoutDirection as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < LanguageLayoutDirection > ( result__ ) } } pub fn AbbreviatedName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < ILanguage3 > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetMuiCompatibleLanguageListFromLanguageTags < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( languagetags : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > { Self :: ILanguageStatics3 ( | this | unsafe { let mut result__ : < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetags . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > ( result__ ) } ) } pub fn ILanguageFactory < R , F : FnOnce ( & ILanguageFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics < R , F : FnOnce ( & ILanguageStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics2 < R , F : FnOnce ( & ILanguageStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics3 < R , F : FnOnce ( & ILanguageStatics3 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics3 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Language { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Globalization.Language;{ea79a752-f7c2-4265-b1bd-c4dec4e4f080})" ) ; } unsafe impl :: windows :: Interface for Language { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } impl :: windows :: RuntimeName for Language { const NAME : & 'static str ="Windows.Globalization.Language" ; } impl < > :: std :: convert :: From < Language > for :: windows :: IUnknown { fn from ( value : Language ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Language > for :: windows :: IUnknown { fn from ( value : & Language ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Language > for :: windows :: IInspectable { fn from ( value : Language ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Language > for :: windows :: IInspectable { fn from ( value : & Language ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Language { } unsafe impl :: std :: marker :: Sync for Language { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct LanguageLayoutDirection ( pub i32 ) ; impl LanguageLayoutDirection { pub const Ltr : LanguageLayoutDirection = LanguageLayoutDirection ( 0i32 ) ; pub const Rtl : LanguageLayoutDirection = LanguageLayoutDirection ( 1i32 ) ; pub const TtbLtr : LanguageLayoutDirection = LanguageLayoutDirection ( 2i32 ) ; pub const TtbRtl : LanguageLayoutDirection = LanguageLayoutDirection ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for LanguageLayoutDirection { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for LanguageLayoutDirection { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for LanguageLayoutDirection { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Globalization.LanguageLayoutDirection;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Graphics { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod DirectX { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Direct3D11 { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IDirect3DSurface ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDirect3DSurface { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 200581446 ,5057 ,18068 , [ 190 ,227 ,122 ,191 ,21 ,234 ,245 ,134 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IDirect3DSurface { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{0bf4a146-13c1-4694-bee3-7abf15eaf586}" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Imaging { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapAlphaMode ( pub i32 ) ; impl BitmapAlphaMode { pub const Premultiplied : BitmapAlphaMode = BitmapAlphaMode ( 0i32 ) ; pub const Straight : BitmapAlphaMode = BitmapAlphaMode ( 1i32 ) ; pub const Ignore : BitmapAlphaMode = BitmapAlphaMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapAlphaMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapAlphaMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapAlphaMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapAlphaMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapBuffer ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapBuffer;{a53e04c4-399c-438c-b28f-a63a6b83d1a1})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapBufferAccessMode ( pub i32 ) ; impl BitmapBufferAccessMode { pub const Read : BitmapBufferAccessMode = BitmapBufferAccessMode ( 0i32 ) ; pub const ReadWrite : BitmapBufferAccessMode = BitmapBufferAccessMode ( 1i32 ) ; pub const Write : BitmapBufferAccessMode = BitmapBufferAccessMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapBufferAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapBufferAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapBufferAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapBufferAccessMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapCodecInformation ( :: windows :: IInspectable ) ; impl BitmapCodecInformation { pub fn CodecId < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn FileExtensions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn FriendlyName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn MimeTypes < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapCodecInformation { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapCodecInformation;{400caaf2-c4b0-4392-a3b0-6f6f9ba95cb4})" ) ; } unsafe impl :: windows :: Interface for BitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } impl :: windows :: RuntimeName for BitmapCodecInformation { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapCodecInformation" ; } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : BitmapCodecInformation ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : & BitmapCodecInformation ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : BitmapCodecInformation ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : & BitmapCodecInformation ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for BitmapCodecInformation { } unsafe impl :: std :: marker :: Sync for BitmapCodecInformation { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapDecoder ( :: windows :: IInspectable ) ; impl BitmapDecoder { pub fn BitmapContainerProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn DecoderInformation < > ( & self , ) -> :: windows :: Result < BitmapCodecInformation > { let this = self ; unsafe { let mut result__ : < BitmapCodecInformation as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapCodecInformation > ( result__ ) } } pub fn FrameCount < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPreviewAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn GetFrameAsync < > ( & self , frameindex : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , frameindex , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn BmpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn PngDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn TiffDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegXRDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IcoDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GetDecoderInformationEnumerator < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > ( result__ ) } ) } pub fn CreateAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( stream : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn CreateWithIdAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: Guid > , Param1 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( decoderid : Param0 , stream : Param1 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , decoderid . into_param ( ) . abi ( ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn HeifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn WebpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IBitmapDecoderStatics < R , F : FnOnce ( & IBitmapDecoderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IBitmapDecoderStatics2 < R , F : FnOnce ( & IBitmapDecoderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for BitmapDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapDecoder;{acef22ba-1d74-4c91-9dfc-9620745233e6})" ) ; } unsafe impl :: windows :: Interface for BitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } impl :: windows :: RuntimeName for BitmapDecoder { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapDecoder" ; } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IUnknown { fn from ( value : BitmapDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IUnknown { fn from ( value : & BitmapDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IInspectable { fn from ( value : BitmapDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IInspectable { fn from ( value : & BitmapDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapDecoder { } unsafe impl :: std :: marker :: Sync for BitmapDecoder { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapFrame ( :: windows :: IInspectable ) ; impl BitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapFrame;{72a49a1c-8081-438d-91bc-94ecfc8185c6})" ) ; } unsafe impl :: windows :: Interface for BitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl :: windows :: RuntimeName for BitmapFrame { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapFrame" ; } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IUnknown { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IUnknown { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IInspectable { fn from ( value : BitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IInspectable { fn from ( value : & BitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < BitmapFrame > for IBitmapFrame { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for IBitmapFrame { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapFrame ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapFrame ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapFrame { } unsafe impl :: std :: marker :: Sync for BitmapFrame { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapPixelFormat ( pub i32 ) ; impl BitmapPixelFormat { pub const Unknown : BitmapPixelFormat = BitmapPixelFormat ( 0i32 ) ; pub const Rgba16 : BitmapPixelFormat = BitmapPixelFormat ( 12i32 ) ; pub const Rgba8 : BitmapPixelFormat = BitmapPixelFormat ( 30i32 ) ; pub const Gray16 : BitmapPixelFormat = BitmapPixelFormat ( 57i32 ) ; pub const Gray8 : BitmapPixelFormat = BitmapPixelFormat ( 62i32 ) ; pub const Bgra8 : BitmapPixelFormat = BitmapPixelFormat ( 87i32 ) ; pub const Nv12 : BitmapPixelFormat = BitmapPixelFormat ( 103i32 ) ; pub const P010 : BitmapPixelFormat = BitmapPixelFormat ( 104i32 ) ; pub const Yuy2 : BitmapPixelFormat = BitmapPixelFormat ( 107i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapPixelFormat { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapPixelFormat { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapPixelFormat { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapPixelFormat;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapPropertiesView ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapPropertiesView;{7e0fe87a-3a70-48f8-9c55-196cf5a545f5})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapTransform ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapTransform;{ae755344-e268-4d35-adcf-e995d31a8d34})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ColorManagementMode ( pub i32 ) ; impl ColorManagementMode { pub const DoNotColorManage : ColorManagementMode = ColorManagementMode ( 0i32 ) ; pub const ColorManageToSRgb : ColorManagementMode = ColorManagementMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ColorManagementMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ColorManagementMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ColorManagementMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ColorManagementMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ExifOrientationMode ( pub i32 ) ; impl ExifOrientationMode { pub const IgnoreExifOrientation : ExifOrientationMode = ExifOrientationMode ( 0i32 ) ; pub const RespectExifOrientation : ExifOrientationMode = ExifOrientationMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ExifOrientationMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ExifOrientationMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ExifOrientationMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ExifOrientationMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{a53e04c4-399c-438c-b28f-a63a6b83d1a1}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , frameindex : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics { type Vtable = IBitmapDecoderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133300518 ,48367 ,20117 , [ 186 ,214 ,35 ,168 ,34 ,229 ,141 ,1 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , decoderid : :: windows :: Guid , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics2 { type Vtable = IBitmapDecoderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1354393834 ,39329 ,16580 , [ 128 ,217 ,174 ,240 ,218 ,250 ,108 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrame ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl < > IBitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72a49a1c-8081-438d-91bc-94ecfc8185c6}" ) ; } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IUnknown { fn from ( value : IBitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IUnknown { fn from ( value : & IBitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IInspectable { fn from ( value : IBitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IInspectable { fn from ( value : & IBitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrame_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrameWithSoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrameWithSoftwareBitmap { type Vtable = IBitmapFrameWithSoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4264066202 ,16908 ,18787 , [ 135 ,173 ,105 ,20 ,54 ,224 ,131 ,131 ] , ) ; } impl < > IBitmapFrameWithSoftwareBitmap { pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrameWithSoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fe287c9a-420c-4963-87ad-691436e08383}" ) ; } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrameWithSoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapPropertiesView ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{7e0fe87a-3a70-48f8-9c55-196cf5a545f5}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapTransform ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{ae755344-e268-4d35-adcf-e995d31a8d34}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result_size__ : * mut u32 , result__ : * mut * mut u8 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : BitmapBufferAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapFactory { type Vtable = ISoftwareBitmapFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382700905 ,11618 ,19783 , [ 166 ,179 ,79 ,219 ,106 ,7 ,253 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapStatics { type Vtable = ISoftwareBitmapStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3741550043 ,26415 ,19101 , [ 128 ,110 ,194 ,68 ,47 ,52 ,62 ,134 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct ImageStream ( :: windows :: IInspectable ) ; impl ImageStream { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::super::Storage::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::super::Storage::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for ImageStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.ImageStream;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for ImageStream { type Vtable = super::super::Storage::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for ImageStream { const NAME : & 'static str ="Windows.Graphics.Imaging.ImageStream" ; } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IUnknown { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IUnknown { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IInspectable { fn from ( value : ImageStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IInspectable { fn from ( value : & ImageStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for ImageStream { } unsafe impl :: std :: marker :: Sync for ImageStream { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PixelDataProvider ( :: windows :: IInspectable ) ; impl PixelDataProvider { pub fn DetachPixelData < > ( & self , ) -> :: windows :: Result < :: windows :: Array < u8 > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < u8 > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , :: windows :: Array :: < u8 > :: set_abi_len ( & mut result__ ) , & mut result__ as * mut _ as _ ) . and_then ( || result__ ) } } } unsafe impl :: windows :: RuntimeType for PixelDataProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.PixelDataProvider;{dd831f25-185c-4595-9fb9-ccbe6ec18a6f})" ) ; } unsafe impl :: windows :: Interface for PixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } impl :: windows :: RuntimeName for PixelDataProvider { const NAME : & 'static str ="Windows.Graphics.Imaging.PixelDataProvider" ; } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IUnknown { fn from ( value : PixelDataProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IUnknown { fn from ( value : & PixelDataProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IInspectable { fn from ( value : PixelDataProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IInspectable { fn from ( value : & PixelDataProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PixelDataProvider { } unsafe impl :: std :: marker :: Sync for PixelDataProvider { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct SoftwareBitmap ( :: windows :: IInspectable ) ; impl SoftwareBitmap { pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn IsReadOnly < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetDpiX < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetDpiY < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn LockBuffer < > ( & self , mode : BitmapBufferAccessMode , ) -> :: windows :: Result < BitmapBuffer > { let this = self ; unsafe { let mut result__ : < BitmapBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < BitmapBuffer > ( result__ ) } } pub fn CopyTo < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyToBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetReadOnlyView < > ( & self , ) -> :: windows :: Result < SoftwareBitmap > { let this = self ; unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Create < > ( format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateWithAlpha < > ( format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Copy < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Convert < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn ConvertWithAlpha < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , alpha , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn ISoftwareBitmapFactory < R , F : FnOnce ( & ISoftwareBitmapFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ISoftwareBitmapStatics < R , F : FnOnce ( & ISoftwareBitmapStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for SoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.SoftwareBitmap;{689e0708-7eef-483f-963f-da938818e073})" ) ; } unsafe impl :: windows :: Interface for SoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } impl :: windows :: RuntimeName for SoftwareBitmap { const NAME : & 'static str ="Windows.Graphics.Imaging.SoftwareBitmap" ; } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : SoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & SoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : SoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & SoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : SoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & SoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for SoftwareBitmap { } unsafe impl :: std :: marker :: Sync for SoftwareBitmap { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Media { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Ocr { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngineStatics { type Vtable = IOcrEngineStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1543481434 ,13188 ,13632 , [ 153 ,64 ,105 ,145 ,32 ,212 ,40 ,168 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrLine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrLine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrResult_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrWord ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrWord_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrEngine ( :: windows :: IInspectable ) ; impl OcrEngine { pub fn RecognizeAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Graphics::Imaging:: SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < OcrResult > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < OcrResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < OcrResult > > ( result__ ) } } pub fn RecognizerLanguage < > ( & self , ) -> :: windows :: Result < super::super::Globalization:: Language > { let this = self ; unsafe { let mut result__ : < super::super::Globalization:: Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Globalization:: Language > ( result__ ) } } pub fn MaxImageDimension < > ( ) -> :: windows :: Result < u32 > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } ) } pub fn AvailableRecognizerLanguages < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > ( result__ ) } ) } pub fn IsLanguageSupported < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < bool > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn TryCreateFromLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn TryCreateFromUserProfileLanguages < > ( ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn IOcrEngineStatics < R , F : FnOnce ( & IOcrEngineStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < OcrEngine , IOcrEngineStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for OcrEngine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrEngine;{5a14bc41-5b76-3140-b680-8825562683ac})" ) ; } unsafe impl :: windows :: Interface for OcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } impl :: windows :: RuntimeName for OcrEngine { const NAME : & 'static str ="Windows.Media.Ocr.OcrEngine" ; } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IUnknown { fn from ( value : OcrEngine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IUnknown { fn from ( value : & OcrEngine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IInspectable { fn from ( value : OcrEngine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IInspectable { fn from ( value : & OcrEngine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrEngine { } unsafe impl :: std :: marker :: Sync for OcrEngine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrLine ( :: windows :: IInspectable ) ; impl OcrLine { pub fn Words < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrWord > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrLine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrLine;{0043a16f-e31f-3a24-899c-d444bd088124})" ) ; } unsafe impl :: windows :: Interface for OcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } impl :: windows :: RuntimeName for OcrLine { const NAME : & 'static str ="Windows.Media.Ocr.OcrLine" ; } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IUnknown { fn from ( value : OcrLine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IUnknown { fn from ( value : & OcrLine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IInspectable { fn from ( value : OcrLine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IInspectable { fn from ( value : & OcrLine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrLine { } unsafe impl :: std :: marker :: Sync for OcrLine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrResult ( :: windows :: IInspectable ) ; impl OcrResult { pub fn Lines < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrLine > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > ( result__ ) } } pub fn TextAngle < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < f64 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < f64 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrResult;{9bd235b2-175b-3d6a-92e2-388c206e2f63})" ) ; } unsafe impl :: windows :: Interface for OcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } impl :: windows :: RuntimeName for OcrResult { const NAME : & 'static str ="Windows.Media.Ocr.OcrResult" ; } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IUnknown { fn from ( value : OcrResult ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IUnknown { fn from ( value : & OcrResult ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IInspectable { fn from ( value : OcrResult ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IInspectable { fn from ( value : & OcrResult ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrResult { } unsafe impl :: std :: marker :: Sync for OcrResult { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrWord ( :: windows :: IInspectable ) ; impl OcrWord { pub fn BoundingRect < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: Rect > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: Rect > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrWord { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrWord;{3c2a477a-5cd9-3525-ba2a-23d1e0a68a1d})" ) ; } unsafe impl :: windows :: Interface for OcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } impl :: windows :: RuntimeName for OcrWord { const NAME : & 'static str ="Windows.Media.Ocr.OcrWord" ; } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IUnknown { fn from ( value : OcrWord ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IUnknown { fn from ( value : & OcrWord ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IInspectable { fn from ( value : OcrWord ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IInspectable { fn from ( value : & OcrWord ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrWord { } unsafe impl :: std :: marker :: Sync for OcrWord { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CreationCollisionOption ( pub i32 ) ; impl CreationCollisionOption { pub const GenerateUniqueName : CreationCollisionOption = CreationCollisionOption ( 0i32 ) ; pub const ReplaceExisting : CreationCollisionOption = CreationCollisionOption ( 1i32 ) ; pub const FailIfExists : CreationCollisionOption = CreationCollisionOption ( 2i32 ) ; pub const OpenIfExists : CreationCollisionOption = CreationCollisionOption ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for CreationCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CreationCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CreationCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.CreationCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAccessMode ( pub i32 ) ; impl FileAccessMode { pub const Read : FileAccessMode = FileAccessMode ( 0i32 ) ; pub const ReadWrite : FileAccessMode = FileAccessMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for FileAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAccessMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAttributes ( pub u32 ) ; impl FileAttributes { pub const Normal : FileAttributes = FileAttributes ( 0u32 ) ; pub const ReadOnly : FileAttributes = FileAttributes ( 1u32 ) ; pub const Directory : FileAttributes = FileAttributes ( 16u32 ) ; pub const Archive : FileAttributes = FileAttributes ( 32u32 ) ; pub const Temporary : FileAttributes = FileAttributes ( 256u32 ) ; pub const LocallyIncomplete : FileAttributes = FileAttributes ( 512u32 ) ; } impl :: std :: convert :: From < u32 > for FileAttributes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAttributes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAttributes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAttributes;u4)" ) ; } impl :: std :: ops :: BitOr for FileAttributes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for FileAttributes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for FileAttributes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for FileAttributes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for FileAttributes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl < > IStorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fa3f6186-4214-428c-a64c-14c9ac7315ea}" ) ; } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IUnknown { fn from ( value : IStorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IUnknown { fn from ( value : & IStorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IInspectable { fn from ( value : IStorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IInspectable { fn from ( value : & IStorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile2 { type Vtable = IStorageFile2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2504936399 ,2679 ,17147 , [ 183 ,119 ,194 ,237 ,88 ,165 ,46 ,68 ] , ) ; } impl < > IStorageFile2 { pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{954e4bcf-0a77-42fb-b777-c2ed58a52e44}" ) ; } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IUnknown { fn from ( value : IStorageFile2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IUnknown { fn from ( value : & IStorageFile2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IInspectable { fn from ( value : IStorageFile2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IInspectable { fn from ( value : & IStorageFile2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFilePropertiesWithAvailability ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFilePropertiesWithAvailability { type Vtable = IStorageFilePropertiesWithAvailability_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2949365403 ,22571 ,16691 , [ 150 ,72 ,228 ,76 ,164 ,110 ,228 ,145 ] , ) ; } impl < > IStorageFilePropertiesWithAvailability { pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFilePropertiesWithAvailability { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{afcbbe9b-582b-4133-9648-e44ca46ee491}" ) ; } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFilePropertiesWithAvailability_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics { type Vtable = IStorageFileStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1501873936 ,56050 ,17352 , [ 139 ,180 ,164 ,211 ,234 ,207 ,208 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics2 { type Vtable = IStorageFileStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1551280001 ,8494 ,19193 , [ 143 ,4 ,116 ,12 ,174 ,16 ,137 ,116 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl < > IStorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b}" ) ; } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IUnknown { fn from ( value : IStorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IUnknown { fn from ( value : & IStorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IInspectable { fn from ( value : IStorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IInspectable { fn from ( value : & IStorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder2 { type Vtable = IStorageFolder2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3894929593 ,2265 ,19086 , [ 160 ,172 ,254 ,94 ,211 ,203 ,187 ,211 ] , ) ; } impl < > IStorageFolder2 { pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e827e8b9-08d9-4a8e-a0ac-fe5ed3cbbbd3}" ) ; } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : IStorageFolder2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : & IStorageFolder2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : IStorageFolder2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : & IStorageFolder2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder3 { type Vtable = IStorageFolder3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2673965209 ,48609 ,16676 , [ 174 ,179 ,176 ,106 ,217 ,111 ,152 ,212 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics { type Vtable = IStorageFolderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 150153215 ,34261 ,18617 , [ 174 ,233 ,40 ,81 ,30 ,51 ,159 ,159 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics2 { type Vtable = IStorageFolderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3026546115 ,29138 ,18045 , [ 139 ,41 ,55 ,31 ,15 ,98 ,191 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem { type Vtable = IStorageItem_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1107798422 ,51759 ,17143 , [ 189 ,232 ,139 ,16 ,69 ,122 ,127 ,48 ] , ) ; } impl < > IStorageItem { pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = self ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4207a996-ca2f-42f7-bde8-8b10457a7f30}" ) ; } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IUnknown { fn from ( value : IStorageItem ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IUnknown { fn from ( value : & IStorageItem ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IInspectable { fn from ( value : IStorageItem ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IInspectable { fn from ( value : & IStorageItem ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , option : StorageDeleteOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut FileAttributes ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , r#type : StorageItemTypes , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem2 { type Vtable = IStorageItem2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1408837330 ,2108 ,17027 , [ 180 ,91 ,129 ,192 ,7 ,35 ,126 ,68 ] , ) ; } impl < > IStorageItem2 { pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{53f926d2-083c-4283-b45b-81c007237e44}" ) ; } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IUnknown { fn from ( value : IStorageItem2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IUnknown { fn from ( value : & IStorageItem2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IInspectable { fn from ( value : IStorageItem2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IInspectable { fn from ( value : & IStorageItem2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageItem2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItem2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , item : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties { type Vtable = IStorageItemProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2254849144 ,32809 ,18174 , [ 167 ,137 ,28 ,47 ,62 ,47 ,251 ,92 ] , ) ; } impl < > IStorageItemProperties { pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = self ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{86664478-8029-46fe-a789-1c2f3e2ffb5c}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties2 { type Vtable = IStorageItemProperties2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2391189841 ,1209 ,19410 , [ 146 ,157 ,254 ,243 ,247 ,22 ,33 ,208 ] , ) ; } impl < > IStorageItemProperties2 { pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{8e86a951-04b9-4bd2-929d-fef3f71621d0}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemPropertiesWithProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemPropertiesWithProvider { type Vtable = IStorageItemPropertiesWithProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2249978779 ,25448 ,19950 , [ 180 ,14 ,116 ,104 ,74 ,92 ,231 ,20 ] , ) ; } impl < > IStorageItemPropertiesWithProvider { pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = self ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemPropertiesWithProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{861bf39b-6368-4dee-b40e-74684a5ce714}" ) ; } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemPropertiesWithProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageLibraryChangeTracker ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{9e157316-6073-44f6-9681-7492d1286c90}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e705eed4-d478-47d6-ba46-1a8ebe114a20}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct NameCollisionOption ( pub i32 ) ; impl NameCollisionOption { pub const GenerateUniqueName : NameCollisionOption = NameCollisionOption ( 0i32 ) ; pub const ReplaceExisting : NameCollisionOption = NameCollisionOption ( 1i32 ) ; pub const FailIfExists : NameCollisionOption = NameCollisionOption ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for NameCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for NameCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for NameCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.NameCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageDeleteOption ( pub i32 ) ; impl StorageDeleteOption { pub const Default : StorageDeleteOption = StorageDeleteOption ( 0i32 ) ; pub const PermanentDelete : StorageDeleteOption = StorageDeleteOption ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for StorageDeleteOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageDeleteOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageDeleteOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageDeleteOption;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFile ( :: windows :: IInspectable ) ; impl StorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageFilePropertiesWithAvailability > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } pub fn GetFileFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromApplicationUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , > ( uri : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn IStorageFileStatics < R , F : FnOnce ( & IStorageFileStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFileStatics2 < R , F : FnOnce ( & IStorageFileStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFile;{fa3f6186-4214-428c-a64c-14c9ac7315ea})" ) ; } unsafe impl :: windows :: Interface for StorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl :: windows :: RuntimeName for StorageFile { const NAME : & 'static str ="Windows.Storage.StorageFile" ; } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IUnknown { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IUnknown { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IInspectable { fn from ( value : StorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IInspectable { fn from ( value : & StorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFile > for IStorageFile { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for IStorageFile { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: std :: convert :: TryInto :: < IStorageFile2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: std :: convert :: TryInto :: < IStorageFilePropertiesWithAvailability > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFolder ( :: windows :: IInspectable ) ; impl StorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = & :: windows :: Interface :: cast :: < IStorageFolder2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : Search:: CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : Search:: CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetFolderFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn TryGetChangeTracker < > ( & self , ) -> :: windows :: Result < StorageLibraryChangeTracker > { let this = & :: windows :: Interface :: cast :: < IStorageFolder3 > ( self ) ? ; unsafe { let mut result__ : < StorageLibraryChangeTracker as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageLibraryChangeTracker > ( result__ ) } } pub fn GetFolderFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn IStorageFolderStatics < R , F : FnOnce ( & IStorageFolderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFolderStatics2 < R , F : FnOnce ( & IStorageFolderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFolder;{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b})" ) ; } unsafe impl :: windows :: Interface for StorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl :: windows :: RuntimeName for StorageFolder { const NAME : & 'static str ="Windows.Storage.StorageFolder" ; } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IUnknown { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IUnknown { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IInspectable { fn from ( value : StorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IInspectable { fn from ( value : & StorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFolder > for IStorageFolder { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for IStorageFolder { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: std :: convert :: TryInto :: < IStorageFolder2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: std :: convert :: TryInto :: < Search:: IStorageFolderQueryOperations > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageItemTypes ( pub u32 ) ; impl StorageItemTypes { pub const None : StorageItemTypes = StorageItemTypes ( 0u32 ) ; pub const File : StorageItemTypes = StorageItemTypes ( 1u32 ) ; pub const Folder : StorageItemTypes = StorageItemTypes ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageItemTypes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageItemTypes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageItemTypes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageItemTypes;u4)" ) ; } impl :: std :: ops :: BitOr for StorageItemTypes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageItemTypes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageItemTypes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageItemTypes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageItemTypes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageLibraryChangeTracker ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageLibraryChangeTracker;{9e157316-6073-44f6-9681-7492d1286c90})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageOpenOptions ( pub u32 ) ; impl StorageOpenOptions { pub const None : StorageOpenOptions = StorageOpenOptions ( 0u32 ) ; pub const AllowOnlyReaders : StorageOpenOptions = StorageOpenOptions ( 1u32 ) ; pub const AllowReadersAndWriters : StorageOpenOptions = StorageOpenOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageOpenOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageOpenOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageOpenOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageOpenOptions;u4)" ) ; } impl :: std :: ops :: BitOr for StorageOpenOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageOpenOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageOpenOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageOpenOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageOpenOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageProvider ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageProvider;{e705eed4-d478-47d6-ba46-1a8ebe114a20})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageStreamTransaction ( :: windows :: IInspectable ) ; impl StorageStreamTransaction { pub fn Stream < > ( & self , ) -> :: windows :: Result < Streams:: IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Streams:: IRandomAccessStream > ( result__ ) } } pub fn CommitAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl :: windows :: RuntimeType for StorageStreamTransaction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageStreamTransaction;{f67cf363-a53d-4d94-ae2c-67232d93acdd})" ) ; } unsafe impl :: windows :: Interface for StorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } impl :: windows :: RuntimeName for StorageStreamTransaction { const NAME : & 'static str ="Windows.Storage.StorageStreamTransaction" ; } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : StorageStreamTransaction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : & StorageStreamTransaction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : StorageStreamTransaction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : & StorageStreamTransaction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageStreamTransaction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageStreamTransaction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequest ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StreamedFileDataRequest { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } unsafe impl :: windows :: RuntimeType for StreamedFileDataRequest { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StreamedFileDataRequest;{905a0fe6-bc53-11df-8c49-001e4fc686da})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StreamedFileDataRequestedHandler ( :: windows :: IUnknown , ) where ; impl < > StreamedFileDataRequestedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = StreamedFileDataRequestedHandler_box :: < F > { vtable : & StreamedFileDataRequestedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , StreamedFileDataRequest > , > ( & self , stream : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for StreamedFileDataRequestedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({fef6a824-2fe1-4d07-a35b-b77c50b5f4cc})" ) ; } unsafe impl < > :: windows :: Interface for StreamedFileDataRequestedHandler { type Vtable = StreamedFileDataRequestedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4277577764 ,12257 ,19719 , [ 163 ,91 ,183 ,124 ,80 ,181 ,244 ,204 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequestedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct StreamedFileDataRequestedHandler_box < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const StreamedFileDataRequestedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > StreamedFileDataRequestedHandler_box :: < F > { const VTABLE : StreamedFileDataRequestedHandler_abi = StreamedFileDataRequestedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < StreamedFileDataRequestedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & stream as * const < StreamedFileDataRequest as :: windows :: Abi > :: Abi as * const < StreamedFileDataRequest as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileProperties { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BasicProperties ( :: windows :: IInspectable ) ; impl BasicProperties { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn DateModified < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn ItemDate < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BasicProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.BasicProperties;{d05d55db-785e-4a66-be02-9beec58aea81})" ) ; } unsafe impl :: windows :: Interface for BasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } impl :: windows :: RuntimeName for BasicProperties { const NAME : & 'static str ="Windows.Storage.FileProperties.BasicProperties" ; } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IUnknown { fn from ( value : BasicProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IUnknown { fn from ( value : & BasicProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IInspectable { fn from ( value : BasicProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IInspectable { fn from ( value : & BasicProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : BasicProperties ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : & BasicProperties ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: std :: convert :: TryInto :: < IStorageItemExtraProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBasicProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBasicProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemContentProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{05294bad-bc38-48bf-85d7-770e0e2ae0ba}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemExtraProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemExtraProperties { type Vtable = IStorageItemExtraProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3309527474 ,21709 ,17195 , [ 189 ,188 ,75 ,25 ,196 ,180 ,112 ,215 ] , ) ; } impl < > IStorageItemExtraProperties { pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemExtraProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c54361b2-54cd-432b-bdbc-4b19c4b470d7}" ) ; } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemExtraProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemExtraProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemExtraProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemExtraProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemExtraProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestoretrieve : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestosave : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IThumbnailProperties { type Vtable = IThumbnailProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1765659695 ,56295 ,18869 , [ 179 ,179 ,40 ,147 ,172 ,93 ,52 ,35 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut ThumbnailType ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemContentProperties ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemContentProperties;{05294bad-bc38-48bf-85d7-770e0e2ae0ba})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageItemThumbnail ( :: windows :: IInspectable ) ; impl StorageItemThumbnail { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn OriginalWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OriginalHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReturnedSmallerCachedSize < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < ThumbnailType > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < ThumbnailType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < ThumbnailType > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StorageItemThumbnail { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemThumbnail;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for StorageItemThumbnail { type Vtable = super::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for StorageItemThumbnail { const NAME : & 'static str ="Windows.Storage.FileProperties.StorageItemThumbnail" ; } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : StorageItemThumbnail ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : & StorageItemThumbnail ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailMode ( pub i32 ) ; impl ThumbnailMode { pub const PicturesView : ThumbnailMode = ThumbnailMode ( 0i32 ) ; pub const VideosView : ThumbnailMode = ThumbnailMode ( 1i32 ) ; pub const MusicView : ThumbnailMode = ThumbnailMode ( 2i32 ) ; pub const DocumentsView : ThumbnailMode = ThumbnailMode ( 3i32 ) ; pub const ListView : ThumbnailMode = ThumbnailMode ( 4i32 ) ; pub const SingleItem : ThumbnailMode = ThumbnailMode ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailOptions ( pub u32 ) ; impl ThumbnailOptions { pub const None : ThumbnailOptions = ThumbnailOptions ( 0u32 ) ; pub const ReturnOnlyIfCached : ThumbnailOptions = ThumbnailOptions ( 1u32 ) ; pub const ResizeThumbnail : ThumbnailOptions = ThumbnailOptions ( 2u32 ) ; pub const UseCurrentScale : ThumbnailOptions = ThumbnailOptions ( 4u32 ) ; } impl :: std :: convert :: From < u32 > for ThumbnailOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailOptions;u4)" ) ; } impl :: std :: ops :: BitOr for ThumbnailOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for ThumbnailOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for ThumbnailOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for ThumbnailOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for ThumbnailOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailType ( pub i32 ) ; impl ThumbnailType { pub const Image : ThumbnailType = ThumbnailType ( 0i32 ) ; pub const Icon : ThumbnailType = ThumbnailType ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailType;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Search { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFileQuery ( pub i32 ) ; impl CommonFileQuery { pub const DefaultQuery : CommonFileQuery = CommonFileQuery ( 0i32 ) ; pub const OrderByName : CommonFileQuery = CommonFileQuery ( 1i32 ) ; pub const OrderByTitle : CommonFileQuery = CommonFileQuery ( 2i32 ) ; pub const OrderByMusicProperties : CommonFileQuery = CommonFileQuery ( 3i32 ) ; pub const OrderBySearchRank : CommonFileQuery = CommonFileQuery ( 4i32 ) ; pub const OrderByDate : CommonFileQuery = CommonFileQuery ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFileQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFileQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFileQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFileQuery;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFolderQuery ( pub i32 ) ; impl CommonFolderQuery { pub const DefaultQuery : CommonFolderQuery = CommonFolderQuery ( 0i32 ) ; pub const GroupByYear : CommonFolderQuery = CommonFolderQuery ( 100i32 ) ; pub const GroupByMonth : CommonFolderQuery = CommonFolderQuery ( 101i32 ) ; pub const GroupByArtist : CommonFolderQuery = CommonFolderQuery ( 102i32 ) ; pub const GroupByAlbum : CommonFolderQuery = CommonFolderQuery ( 103i32 ) ; pub const GroupByAlbumArtist : CommonFolderQuery = CommonFolderQuery ( 104i32 ) ; pub const GroupByComposer : CommonFolderQuery = CommonFolderQuery ( 105i32 ) ; pub const GroupByGenre : CommonFolderQuery = CommonFolderQuery ( 106i32 ) ; pub const GroupByPublishedYear : CommonFolderQuery = CommonFolderQuery ( 107i32 ) ; pub const GroupByRating : CommonFolderQuery = CommonFolderQuery ( 108i32 ) ; pub const GroupByTag : CommonFolderQuery = CommonFolderQuery ( 109i32 ) ; pub const GroupByAuthor : CommonFolderQuery = CommonFolderQuery ( 110i32 ) ; pub const GroupByType : CommonFolderQuery = CommonFolderQuery ( 111i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFolderQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFolderQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFolderQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFolderQuery;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IQueryOptions ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IQueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IQueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{1e5e46ee-0f45-4838-a8e9-d0479d446c30}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{52fda447-2baa-412c-b29f-d4b1778efa1e}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolderQueryOperations ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryOperations { type Vtable = IStorageFolderQueryOperations_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3410218185 ,17515 ,19023 , [ 190 ,151 ,117 ,119 ,113 ,190 ,82 ,3 ] , ) ; } impl < > IStorageFolderQueryOperations { pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IndexedState > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryOperations { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cb43ccc9-446b-4a4f-be97-757771be5203}" ) ; } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : IStorageFolderQueryOperations ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : & IStorageFolderQueryOperations ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : IStorageFolderQueryOperations ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : & IStorageFolderQueryOperations ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryOperations_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{6654c911-7d66-46fa-aecf-e4a4baa93ab8}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e8948079-9d58-47b8-b2b2-41b07f4795f9}" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct IndexedState ( pub i32 ) ; impl IndexedState { pub const Unknown : IndexedState = IndexedState ( 0i32 ) ; pub const NotIndexed : IndexedState = IndexedState ( 1i32 ) ; pub const PartiallyIndexed : IndexedState = IndexedState ( 2i32 ) ; pub const FullyIndexed : IndexedState = IndexedState ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for IndexedState { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for IndexedState { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for IndexedState { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.IndexedState;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct QueryOptions ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for QueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl :: windows :: RuntimeType for QueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.QueryOptions;{1e5e46ee-0f45-4838-a8e9-d0479d446c30})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFileQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFileQueryResult;{52fda447-2baa-412c-b29f-d4b1778efa1e})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFolderQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFolderQueryResult;{6654c911-7d66-46fa-aecf-e4a4baa93ab8})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageItemQueryResult;{e8948079-9d58-47b8-b2b2-41b07f4795f9})" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Streams { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBuffer { type Vtable = IBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821408 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IBuffer { pub fn Capacity < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Length < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetLength < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe0-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IUnknown { fn from ( value : IBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IUnknown { fn from ( value : & IBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IInspectable { fn from ( value : IBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IInspectable { fn from ( value : & IBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IContentTypeProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IContentTypeProvider { type Vtable = IContentTypeProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2547030181 ,15257 ,19945 , [ 136 ,165 ,225 ,29 ,47 ,80 ,199 ,149 ] , ) ; } impl < > IContentTypeProvider { pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IContentTypeProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{97d098a5-3b99-4de9-88a5-e11d2f50c795}" ) ; } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : IContentTypeProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : & IContentTypeProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : IContentTypeProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : & IContentTypeProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IContentTypeProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStream { type Vtable = IInputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821410 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IInputStream { pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe2-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IUnknown { fn from ( value : IInputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IUnknown { fn from ( value : & IInputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IInspectable { fn from ( value : IInputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IInspectable { fn from ( value : & IInputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IInputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IInputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , count : u32 , options : InputStreamOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStreamReference { type Vtable = IInputStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133681944 ,24265 ,19290 , [ 145 ,156 ,66 ,5 ,176 ,200 ,4 ,182 ] , ) ; } impl < > IInputStreamReference { pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IInputStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IInputStream > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{43929d18-5ec9-4b5a-919c-4205b0c804b6}" ) ; } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IUnknown { fn from ( value : IInputStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IUnknown { fn from ( value : & IInputStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IInspectable { fn from ( value : IInputStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IInspectable { fn from ( value : & IInputStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IOutputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOutputStream { type Vtable = IOutputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IOutputStream { pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IOutputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe6-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IUnknown { fn from ( value : IOutputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IUnknown { fn from ( value : & IOutputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IInspectable { fn from ( value : IOutputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IInspectable { fn from ( value : & IOutputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IOutputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IOutputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOutputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStream { type Vtable = IRandomAccessStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821409 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IRandomAccessStream { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = self ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = self ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe1-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : IRandomAccessStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : IRandomAccessStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamReference { type Vtable = IRandomAccessStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 871248180 ,7638 ,20026 , [ 128 ,103 ,209 ,193 ,98 ,232 ,100 ,43 ] , ) ; } impl < > IRandomAccessStreamReference { pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{33ee3134-1dd6-4e3a-8067-d1c162e8642b}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamWithContentType ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamWithContentType { type Vtable = IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl < > IRandomAccessStreamWithContentType { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamWithContentType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cc254827-4b3d-438f-9232-10c76bc7e038}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: std :: convert :: TryInto :: < IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: std :: convert :: TryInto :: < IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamWithContentType_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct InputStreamOptions ( pub u32 ) ; impl InputStreamOptions { pub const None : InputStreamOptions = InputStreamOptions ( 0u32 ) ; pub const Partial : InputStreamOptions = InputStreamOptions ( 1u32 ) ; pub const ReadAhead : InputStreamOptions = InputStreamOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for InputStreamOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for InputStreamOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for InputStreamOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Streams.InputStreamOptions;u4)" ) ; } impl :: std :: ops :: BitOr for InputStreamOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for InputStreamOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for InputStreamOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for InputStreamOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for InputStreamOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUser ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUser { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IUser { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{df9a26c6-e746-4bcd-b5d4-120103c4209b}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct User ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for User { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl :: windows :: RuntimeType for User { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.System.User;{df9a26c6-e746-4bcd-b5d4-120103c4209b})" ) ; } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/win_ocr_bindings-6e1ac750950c780f/out/windows.rs:1:15544 [INFO] [stdout] | [INFO] [stdout] 1 | ...( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( thi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > AsyncActionCompletedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionCompletedHandler_box :: < F > { vtable : & AsyncActionCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncAction > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7})" ) ; } unsafe impl < > :: windows :: Interface for AsyncActionCompletedHandler { type Vtable = AsyncActionCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2767019137 ,30409 ,16573 , [ 139 ,230 ,177 ,217 ,15 ,178 ,10 ,231 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct AsyncActionCompletedHandler_box < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const AsyncActionCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionCompletedHandler_box :: < F > { const VTABLE : AsyncActionCompletedHandler_abi = AsyncActionCompletedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncActionCompletedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncAction as :: windows :: Abi > :: Abi as * const < IAsyncAction as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationCompletedHandler < TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , > AsyncOperationCompletedHandler < TResult > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationCompletedHandler_box :: < TResult , F > { vtable : & AsyncOperationCompletedHandler_box :: < TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{fcdcf02c-e5d8-4478-915a-4d90b74b83a5}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationCompletedHandler < TResult > { type Vtable = AsyncOperationCompletedHandler_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationCompletedHandler < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationCompletedHandler_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationCompletedHandler_box < TResult , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationCompletedHandler_abi < TResult > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationCompletedHandler_box :: < TResult , F > { const VTABLE : AsyncOperationCompletedHandler_abi < TResult > = AsyncOperationCompletedHandler_abi :: < TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationCompletedHandler < TResult > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: Abi as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationProgressHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationProgressHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationProgressHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , Param1 : :: windows :: IntoParam < 'a , TProgress > , > ( & self , asyncinfo : Param0 , progressinfo : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationProgressHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{55690902-0aab-421a-8778-f8ce5026d758}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationProgressHandler < TResult , TProgress > { type Vtable = AsyncOperationProgressHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationProgressHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationProgressHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationProgressHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationProgressHandler_abi < TResult , TProgress > = AsyncOperationProgressHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { let _ = Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationWithProgressCompletedHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e85df41d-6aa7-46e3-a8e2-f009d840c627}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type Vtable = AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationWithProgressCompletedHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > = AsyncOperationWithProgressCompletedHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AsyncStatus ( pub i32 ) ; impl AsyncStatus { pub const Canceled : AsyncStatus = AsyncStatus ( 2i32 ) ; pub const Completed : AsyncStatus = AsyncStatus ( 1i32 ) ; pub const Error : AsyncStatus = AsyncStatus ( 3i32 ) ; pub const Started : AsyncStatus = AsyncStatus ( 0i32 ) ; } impl :: std :: convert :: From < i32 > for AsyncStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AsyncStatus { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & self . UniversalTime ) . finish ( ) } } impl :: std :: cmp :: PartialEq for DateTime { fn eq ( & self , other : & Self ) -> bool { self . UniversalTime == other . UniversalTime } } impl :: std :: cmp :: Eq for DateTime { } unsafe impl :: windows :: Abi for DateTime { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for DateTime { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.DateTime;i8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncAction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncAction { type Vtable = IAsyncAction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1516535814 ,33850 ,19881 , [ 134 ,91 ,157 ,38 ,229 ,223 ,173 ,123 ] , ) ; } impl < > IAsyncAction { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionCompletedHandler > { let this = self ; unsafe { let mut result__ : < AsyncActionCompletedHandler as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < > :: windows :: RuntimeType for IAsyncAction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{5a648006-843a-4da9-865b-9d26e5dfad7b}" ) ; } impl < > :: std :: future :: Future for IAsyncAction { type Output = :: windows :: Result < ( ) > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IUnknown { fn from ( value : IAsyncAction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IUnknown { fn from ( value : & IAsyncAction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IInspectable { fn from ( value : IAsyncAction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IInspectable { fn from ( value : & IAsyncAction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncAction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncAction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < > :: std :: marker :: Send for IAsyncAction { } unsafe impl < > :: std :: marker :: Sync for IAsyncAction { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncAction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncInfo ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncInfo { type Vtable = IAsyncInfo_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 54 ,0 ,0 , [ 192 ,0 ,0 ,0 ,0 ,0 ,0 ,70 ] , ) ; } impl < > IAsyncInfo { pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = self ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = self ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IUnknown { fn from ( value : IAsyncInfo ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IUnknown { fn from ( value : & IAsyncInfo ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IInspectable { fn from ( value : IAsyncInfo ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IInspectable { fn from ( value : & IAsyncInfo ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncInfo_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut AsyncStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: HRESULT ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperation < TResult > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperation < TResult > { type Vtable = IAsyncOperation_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperation < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , > IAsyncOperation < TResult > { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationCompletedHandler < TResult > > { let this = self ; unsafe { let mut result__ : < AsyncOperationCompletedHandler < TResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationCompletedHandler < TResult > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperation < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9fc2b0bb-e446-44e2-aa61-9cab8f636af2}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperation < TResult > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : IAsyncOperation < TResult > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : IAsyncOperation < TResult > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperation < TResult > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperation < TResult > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperation < TResult > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperation_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperationWithProgress < TResult , TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperationWithProgress < TResult , TProgress > { type Vtable = IAsyncOperationWithProgress_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > IAsyncOperationWithProgress < TResult , TProgress > { pub fn SetProgress < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncOperationProgressHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperationWithProgress < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{b5d036d7-e297-498f-ba60-0289e76e23dd}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperationWithProgress < TResult , TProgress > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperationWithProgress < TResult , TProgress > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperationWithProgress < TResult , TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperationWithProgress_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IClosable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IClosable { type Vtable = IClosable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 819308585 ,32676 ,16422 , [ 131 ,187 ,215 ,91 ,174 ,78 ,169 ,158 ] , ) ; } impl < > IClosable { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } impl < > :: std :: convert :: From < IClosable > for :: windows :: IUnknown { fn from ( value : IClosable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IUnknown { fn from ( value : & IClosable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IClosable > for :: windows :: IInspectable { fn from ( value : IClosable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IInspectable { fn from ( value : & IClosable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IClosable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IPropertyValue ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValue { type Vtable = IPropertyValue_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1272349405 ,30036 ,16617 , [ 154 ,155 ,130 ,101 ,78 ,222 ,126 ,98 ] , ) ; } impl < > IPropertyValue { pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = self ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = self ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = self ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = self ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = self ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = self ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = self ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = self ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = self ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = self ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IUnknown { fn from ( value : IPropertyValue ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IUnknown { fn from ( value : & IPropertyValue ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IInspectable { fn from ( value : IPropertyValue ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IInspectable { fn from ( value : & IPropertyValue ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValue_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PropertyType ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Rect ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IReference < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReference < T > { type Vtable = IReference_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReference < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReference < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17706-2d65-11e0-9ae8-d48564015472}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IUnknown { fn from ( value : IReference < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IUnknown { fn from ( value : & IReference < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IInspectable { fn from ( value : IReference < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IInspectable { fn from ( value : & IReference < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : IReference < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : & IReference < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: std :: convert :: TryInto :: < IPropertyValue > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReference_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStringable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStringable { type Vtable = IStringable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2520162132 ,36534 ,18672 , [ 171 ,206 ,193 ,178 ,17 ,230 ,39 ,195 ] , ) ; } impl < > IStringable { pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } impl < > :: std :: convert :: From < IStringable > for :: windows :: IUnknown { fn from ( value : IStringable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IUnknown { fn from ( value : & IStringable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStringable > for :: windows :: IInspectable { fn from ( value : IStringable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IInspectable { fn from ( value : & IStringable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStringable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriEscapeStatics { type Vtable = IUriEscapeStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3251909306 ,51236 ,17490 , [ 167 ,253 ,81 ,43 ,195 ,187 ,233 ,161 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , tounescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClass { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , puri : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassFactory { type Vtable = IUriRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1151957359 ,29246 ,20447 , [ 162 ,24 ,3 ,62 ,117 ,176 ,192 ,132 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassWithAbsoluteCanonicalUri { type Vtable = IUriRuntimeClassWithAbsoluteCanonicalUri_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1972213345 ,8732 ,18447 , [ 163 ,57 ,80 ,101 ,102 ,115 ,244 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IWwwFormUrlDecoderEntry ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl < > IWwwFormUrlDecoderEntry { pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderEntry_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClass { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClassFactory { type Vtable = IWwwFormUrlDecoderRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1535929149 ,9390 ,16821 , [ 161 ,191 ,240 ,195 ,213 ,68 ,132 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Point { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y } } impl :: std :: cmp :: Eq for Point { } unsafe impl :: windows :: Abi for Point { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Point { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Point;f4;f4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PropertyType ( pub i32 ) ; impl PropertyType { pub const Empty : PropertyType = PropertyType ( 0i32 ) ; pub const UInt8 : PropertyType = PropertyType ( 1i32 ) ; pub const Int16 : PropertyType = PropertyType ( 2i32 ) ; pub const UInt16 : PropertyType = PropertyType ( 3i32 ) ; pub const Int32 : PropertyType = PropertyType ( 4i32 ) ; pub const UInt32 : PropertyType = PropertyType ( 5i32 ) ; pub const Int64 : PropertyType = PropertyType ( 6i32 ) ; pub const UInt64 : PropertyType = PropertyType ( 7i32 ) ; pub const Single : PropertyType = PropertyType ( 8i32 ) ; pub const Double : PropertyType = PropertyType ( 9i32 ) ; pub const Char16 : PropertyType = PropertyType ( 10i32 ) ; pub const Boolean : PropertyType = PropertyType ( 11i32 ) ; pub const String : PropertyType = PropertyType ( 12i32 ) ; pub const Inspectable : PropertyType = PropertyType ( 13i32 ) ; pub const DateTime : PropertyType = PropertyType ( 14i32 ) ; pub const TimeSpan : PropertyType = PropertyType ( 15i32 ) ; pub const Guid : PropertyType = PropertyType ( 16i32 ) ; pub const Point : PropertyType = PropertyType ( 17i32 ) ; pub const Size : PropertyType = PropertyType ( 18i32 ) ; pub const Rect : PropertyType = PropertyType ( 19i32 ) ; pub const OtherType : PropertyType = PropertyType ( 20i32 ) ; pub const UInt8Array : PropertyType = PropertyType ( 1025i32 ) ; pub const Int16Array : PropertyType = PropertyType ( 1026i32 ) ; pub const UInt16Array : PropertyType = PropertyType ( 1027i32 ) ; pub const Int32Array : PropertyType = PropertyType ( 1028i32 ) ; pub const UInt32Array : PropertyType = PropertyType ( 1029i32 ) ; pub const Int64Array : PropertyType = PropertyType ( 1030i32 ) ; pub const UInt64Array : PropertyType = PropertyType ( 1031i32 ) ; pub const SingleArray : PropertyType = PropertyType ( 1032i32 ) ; pub const DoubleArray : PropertyType = PropertyType ( 1033i32 ) ; pub const Char16Array : PropertyType = PropertyType ( 1034i32 ) ; pub const BooleanArray : PropertyType = PropertyType ( 1035i32 ) ; pub const StringArray : PropertyType = PropertyType ( 1036i32 ) ; pub const InspectableArray : PropertyType = PropertyType ( 1037i32 ) ; pub const DateTimeArray : PropertyType = PropertyType ( 1038i32 ) ; pub const TimeSpanArray : PropertyType = PropertyType ( 1039i32 ) ; pub const GuidArray : PropertyType = PropertyType ( 1040i32 ) ; pub const PointArray : PropertyType = PropertyType ( 1041i32 ) ; pub const SizeArray : PropertyType = PropertyType ( 1042i32 ) ; pub const RectArray : PropertyType = PropertyType ( 1043i32 ) ; pub const OtherTypeArray : PropertyType = PropertyType ( 1044i32 ) ; } impl :: std :: convert :: From < i32 > for PropertyType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PropertyType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for PropertyType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Rect { pub X : f32 , pub Y : f32 , pub Width : f32 , pub Height : f32 } impl Rect { } impl :: std :: default :: Default for Rect { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Rect { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y && self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Rect { } unsafe impl :: windows :: Abi for Rect { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Rect { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Size { fn eq ( & self , other : & Self ) -> bool { self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Size { } unsafe impl :: windows :: Abi for Size { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Size { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & self . Duration ) . finish ( ) } } impl :: std :: cmp :: PartialEq for TimeSpan { fn eq ( & self , other : & Self ) -> bool { self . Duration == other . Duration } } impl :: std :: cmp :: Eq for TimeSpan { } unsafe impl :: windows :: Abi for TimeSpan { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for TimeSpan { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.TimeSpan;i8)" ) ; } impl :: std :: convert :: From < :: std :: time :: Duration > for TimeSpan { fn from ( value : :: std :: time :: Duration ) -> Self { Self { Duration : ( value . as_nanos ( ) / 100 ) as i64 , } } } impl :: std :: convert :: From < TimeSpan > for :: std :: time :: Duration { fn from ( value : TimeSpan ) -> Self { :: std :: time :: Duration :: from_nanos ( ( value . Duration * 100 ) as u64 ) } } impl < 'a > :: windows :: IntoParam < 'a , TimeSpan > for :: std :: time :: Duration { fn into_param ( self ) -> :: windows :: Param < 'a , TimeSpan > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Uri ( :: windows :: IInspectable ) ; impl Uri { pub fn AbsoluteUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Domain < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Extension < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Fragment < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Host < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Password < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Query < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn QueryParsed < > ( & self , ) -> :: windows :: Result < WwwFormUrlDecoder > { let this = self ; unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } } pub fn RawUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn SchemeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UserName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Port < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn Suspicious < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , Param0 : :: windows :: IntoParam < 'a , Uri > , > ( & self , puri : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , relativeuri : Param0 , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } } pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStringable > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( tounescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( toescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( uri : Param0 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( baseuri : Param0 , relativeuri : Param1 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , baseuri . into_param ( ) . abi ( ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn IUriEscapeStatics < R , F : FnOnce ( & IUriEscapeStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriEscapeStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IUriRuntimeClassFactory < R , F : FnOnce ( & IUriRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Uri { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Uri;{9e365e57-48b2-4160-956f-c7385120bbfc})" ) ; } unsafe impl :: windows :: Interface for Uri { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } impl :: windows :: RuntimeName for Uri { const NAME : & 'static str ="Windows.Foundation.Uri" ; } impl < > :: std :: convert :: From < Uri > for :: windows :: IUnknown { fn from ( value : Uri ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IUnknown { fn from ( value : & Uri ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Uri > for :: windows :: IInspectable { fn from ( value : Uri ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IInspectable { fn from ( value : & Uri ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : Uri ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : & Uri ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: std :: convert :: TryInto :: < IStringable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for Uri { } unsafe impl :: std :: marker :: Sync for Uri { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoder ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoder { pub fn GetFirstValueByName < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > { let this = & :: windows :: Interface :: cast :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > ( result__ ) } } pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < IWwwFormUrlDecoderEntry > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( query : Param0 , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , query . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } ) } pub fn IWwwFormUrlDecoderRuntimeClassFactory < R , F : FnOnce ( & IWwwFormUrlDecoderRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < WwwFormUrlDecoder , IWwwFormUrlDecoderRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoder;{d45a0451-f225-4542-9296-0e1df5d254df})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoder { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoder { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoder" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : WwwFormUrlDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoder { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoder { } impl < > :: std :: iter :: IntoIterator for WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < > :: std :: iter :: IntoIterator for & WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( :: std :: convert :: TryInto :: try_into ( self ) . ok ( ) ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Collections { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterable < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterable < T > { type Vtable = IIterable_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterable < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterable < T > { pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = self ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{faa585ea-6214-4217-afda-7f46de5869b3}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IUnknown { fn from ( value : IIterable < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IUnknown { fn from ( value : & IIterable < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IInspectable { fn from ( value : IIterable < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IInspectable { fn from ( value : & IIterable < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterable_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterator < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterator < T > { type Vtable = IIterator_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterator < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterator < T > { pub fn Current < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn HasCurrent < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn MoveNext < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterator < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6a79e863-4300-459a-9966-cbb660963ee1}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IUnknown { fn from ( value : IIterator < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IUnknown { fn from ( value : & IIterator < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IInspectable { fn from ( value : IIterator < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IInspectable { fn from ( value : & IIterator < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for IIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { let result = self . Current ( ) . ok ( ) ; if result . is_some ( ) { self . MoveNext ( ) . ok ( ) ? ; } result } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterator_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IKeyValuePair < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IKeyValuePair < K , V > { type Vtable = IKeyValuePair_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IKeyValuePair < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IKeyValuePair < K , V > { pub fn Key < > ( & self , ) -> :: windows :: Result < K > { let this = self ; unsafe { let mut result__ : < K as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < K > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IKeyValuePair < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{02b51929-c1c4-4a7e-8940-0312b5c18500}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : IKeyValuePair < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : & IKeyValuePair < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : IKeyValuePair < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : & IKeyValuePair < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IKeyValuePair_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMap < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMap < K , V > { type Vtable = IMap_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMap < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMap < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IMapView < K , V > > { let this = self ; unsafe { let mut result__ : < IMapView < K , V > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IMapView < K , V > > ( result__ ) } } pub fn Insert < 'a , Param0 : :: windows :: IntoParam < 'a , K > , Param1 : :: windows :: IntoParam < 'a , V > , > ( & self , key : Param0 , value : Param1 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Remove < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMap < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{3c2925fe-8519-45c1-aa79-197b6718c1c1}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IUnknown { fn from ( value : IMap < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IUnknown { fn from ( value : & IMap < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IInspectable { fn from ( value : IMap < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IInspectable { fn from ( value : & IMap < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMap < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMap < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMap_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , value : < V as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMapView < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMapView < K , V > { type Vtable = IMapView_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMapView < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMapView < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Split < > ( & self , first : & mut :: std :: option :: Option < IMapView < K , V > > , second : & mut :: std :: option :: Option < IMapView < K , V > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , first as * mut _ as _ , second as * mut _ as _ , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMapView < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e480ce40-a338-4ada-adcf-272272e48cb9}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : IMapView < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : & IMapView < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : IMapView < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : & IMapView < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMapView < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMapView < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMapView_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , first : * mut :: windows :: RawPtr , second : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVector < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVector < T > { type Vtable = IVector_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVector < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVector < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IVectorView < T > > { let this = self ; unsafe { let mut result__ : < IVectorView < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IVectorView < T > > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn InsertAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAt < > ( & self , index : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , index , ) . ok ( ) } } pub fn Append < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAtEnd < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReplaceAll < > ( & self , items : & [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute ( items . as_ptr ( ) ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVector < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{913337e9-11a1-4345-a3a2-4e7f956e222d}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IUnknown { fn from ( value : IVector < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IUnknown { fn from ( value : & IVector < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IInspectable { fn from ( value : IVector < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IInspectable { fn from ( value : & IVector < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVector < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVector < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVector < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVector < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVector_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * const < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVectorView < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVectorView < T > { type Vtable = IVectorView_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVectorView < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVectorView < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{bbe1fa4c-b0e3-4583-baef-1f1b2e483e56}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IUnknown { fn from ( value : IVectorView < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IUnknown { fn from ( value : & IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IInspectable { fn from ( value : IVectorView < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IInspectable { fn from ( value : & IVectorView < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVectorView < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVectorView < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVectorView < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVectorView < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVectorView_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Globalization { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage2 { type Vtable = ILanguage2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1783096757 ,55629 ,18566 , [ 164 ,4 ,165 ,165 ,185 ,213 ,180 ,148 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut LanguageLayoutDirection ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage3 { type Vtable = ILanguage3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3333373200 ,25626 ,23460 , [ 187 ,67 ,94 ,18 ,174 ,215 ,89 ,84 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageExtensionSubtags { type Vtable = ILanguageExtensionSubtags_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2105388869 ,13965 ,17252 , [ 133 ,43 ,222 ,201 ,39 ,3 ,123 ,133 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , singleton : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageFactory { type Vtable = ILanguageFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2600620716 ,3111 ,17656 , [ 183 ,146 ,151 ,147 ,251 ,102 ,198 ,62 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics { type Vtable = ILanguageStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2990331223 ,2149 ,18132 , [ 137 ,184 ,213 ,155 ,232 ,153 ,15 ,13 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics2 { type Vtable = ILanguageStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 806985582 ,37195 ,19242 , [ 157 ,110 ,227 ,176 ,226 ,125 ,190 ,79 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics3 { type Vtable = ILanguageStatics3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3512650586 ,29150 ,22354 , [ 149 ,66 ,250 ,197 ,180 ,242 ,114 ,97 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetags : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Language ( :: windows :: IInspectable ) ; impl Language { pub fn LanguageTag < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn NativeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Script < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetExtensionSubtags < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , singleton : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = & :: windows :: Interface :: cast :: < ILanguageExtensionSubtags > ( self ) ? ; unsafe { let mut result__ : < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , singleton . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn CreateLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < Language > { Self :: ILanguageFactory ( | this | unsafe { let mut result__ : < Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Language > ( result__ ) } ) } pub fn IsWellFormed < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn CurrentInputMethodLanguageTag < > ( ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn TrySetInputMethodLanguageTag < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn LayoutDirection < > ( & self , ) -> :: windows :: Result < LanguageLayoutDirection > { let this = & :: windows :: Interface :: cast :: < ILanguage2 > ( self ) ? ; unsafe { let mut result__ : < LanguageLayoutDirection as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < LanguageLayoutDirection > ( result__ ) } } pub fn AbbreviatedName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < ILanguage3 > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetMuiCompatibleLanguageListFromLanguageTags < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( languagetags : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > { Self :: ILanguageStatics3 ( | this | unsafe { let mut result__ : < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetags . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > ( result__ ) } ) } pub fn ILanguageFactory < R , F : FnOnce ( & ILanguageFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics < R , F : FnOnce ( & ILanguageStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics2 < R , F : FnOnce ( & ILanguageStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics3 < R , F : FnOnce ( & ILanguageStatics3 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics3 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Language { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Globalization.Language;{ea79a752-f7c2-4265-b1bd-c4dec4e4f080})" ) ; } unsafe impl :: windows :: Interface for Language { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } impl :: windows :: RuntimeName for Language { const NAME : & 'static str ="Windows.Globalization.Language" ; } impl < > :: std :: convert :: From < Language > for :: windows :: IUnknown { fn from ( value : Language ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Language > for :: windows :: IUnknown { fn from ( value : & Language ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Language > for :: windows :: IInspectable { fn from ( value : Language ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Language > for :: windows :: IInspectable { fn from ( value : & Language ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Language { } unsafe impl :: std :: marker :: Sync for Language { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct LanguageLayoutDirection ( pub i32 ) ; impl LanguageLayoutDirection { pub const Ltr : LanguageLayoutDirection = LanguageLayoutDirection ( 0i32 ) ; pub const Rtl : LanguageLayoutDirection = LanguageLayoutDirection ( 1i32 ) ; pub const TtbLtr : LanguageLayoutDirection = LanguageLayoutDirection ( 2i32 ) ; pub const TtbRtl : LanguageLayoutDirection = LanguageLayoutDirection ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for LanguageLayoutDirection { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for LanguageLayoutDirection { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for LanguageLayoutDirection { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Globalization.LanguageLayoutDirection;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Graphics { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod DirectX { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Direct3D11 { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IDirect3DSurface ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDirect3DSurface { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 200581446 ,5057 ,18068 , [ 190 ,227 ,122 ,191 ,21 ,234 ,245 ,134 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IDirect3DSurface { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{0bf4a146-13c1-4694-bee3-7abf15eaf586}" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Imaging { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapAlphaMode ( pub i32 ) ; impl BitmapAlphaMode { pub const Premultiplied : BitmapAlphaMode = BitmapAlphaMode ( 0i32 ) ; pub const Straight : BitmapAlphaMode = BitmapAlphaMode ( 1i32 ) ; pub const Ignore : BitmapAlphaMode = BitmapAlphaMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapAlphaMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapAlphaMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapAlphaMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapAlphaMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapBuffer ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapBuffer;{a53e04c4-399c-438c-b28f-a63a6b83d1a1})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapBufferAccessMode ( pub i32 ) ; impl BitmapBufferAccessMode { pub const Read : BitmapBufferAccessMode = BitmapBufferAccessMode ( 0i32 ) ; pub const ReadWrite : BitmapBufferAccessMode = BitmapBufferAccessMode ( 1i32 ) ; pub const Write : BitmapBufferAccessMode = BitmapBufferAccessMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapBufferAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapBufferAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapBufferAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapBufferAccessMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapCodecInformation ( :: windows :: IInspectable ) ; impl BitmapCodecInformation { pub fn CodecId < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn FileExtensions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn FriendlyName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn MimeTypes < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapCodecInformation { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapCodecInformation;{400caaf2-c4b0-4392-a3b0-6f6f9ba95cb4})" ) ; } unsafe impl :: windows :: Interface for BitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } impl :: windows :: RuntimeName for BitmapCodecInformation { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapCodecInformation" ; } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : BitmapCodecInformation ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : & BitmapCodecInformation ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : BitmapCodecInformation ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : & BitmapCodecInformation ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for BitmapCodecInformation { } unsafe impl :: std :: marker :: Sync for BitmapCodecInformation { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapDecoder ( :: windows :: IInspectable ) ; impl BitmapDecoder { pub fn BitmapContainerProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn DecoderInformation < > ( & self , ) -> :: windows :: Result < BitmapCodecInformation > { let this = self ; unsafe { let mut result__ : < BitmapCodecInformation as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapCodecInformation > ( result__ ) } } pub fn FrameCount < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPreviewAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn GetFrameAsync < > ( & self , frameindex : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , frameindex , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn BmpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn PngDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn TiffDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegXRDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IcoDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GetDecoderInformationEnumerator < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > ( result__ ) } ) } pub fn CreateAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( stream : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn CreateWithIdAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: Guid > , Param1 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( decoderid : Param0 , stream : Param1 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , decoderid . into_param ( ) . abi ( ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn HeifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn WebpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IBitmapDecoderStatics < R , F : FnOnce ( & IBitmapDecoderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IBitmapDecoderStatics2 < R , F : FnOnce ( & IBitmapDecoderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for BitmapDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapDecoder;{acef22ba-1d74-4c91-9dfc-9620745233e6})" ) ; } unsafe impl :: windows :: Interface for BitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } impl :: windows :: RuntimeName for BitmapDecoder { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapDecoder" ; } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IUnknown { fn from ( value : BitmapDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IUnknown { fn from ( value : & BitmapDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IInspectable { fn from ( value : BitmapDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IInspectable { fn from ( value : & BitmapDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapDecoder { } unsafe impl :: std :: marker :: Sync for BitmapDecoder { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapFrame ( :: windows :: IInspectable ) ; impl BitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapFrame;{72a49a1c-8081-438d-91bc-94ecfc8185c6})" ) ; } unsafe impl :: windows :: Interface for BitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl :: windows :: RuntimeName for BitmapFrame { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapFrame" ; } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IUnknown { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IUnknown { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IInspectable { fn from ( value : BitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IInspectable { fn from ( value : & BitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < BitmapFrame > for IBitmapFrame { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for IBitmapFrame { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapFrame ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapFrame ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapFrame { } unsafe impl :: std :: marker :: Sync for BitmapFrame { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapPixelFormat ( pub i32 ) ; impl BitmapPixelFormat { pub const Unknown : BitmapPixelFormat = BitmapPixelFormat ( 0i32 ) ; pub const Rgba16 : BitmapPixelFormat = BitmapPixelFormat ( 12i32 ) ; pub const Rgba8 : BitmapPixelFormat = BitmapPixelFormat ( 30i32 ) ; pub const Gray16 : BitmapPixelFormat = BitmapPixelFormat ( 57i32 ) ; pub const Gray8 : BitmapPixelFormat = BitmapPixelFormat ( 62i32 ) ; pub const Bgra8 : BitmapPixelFormat = BitmapPixelFormat ( 87i32 ) ; pub const Nv12 : BitmapPixelFormat = BitmapPixelFormat ( 103i32 ) ; pub const P010 : BitmapPixelFormat = BitmapPixelFormat ( 104i32 ) ; pub const Yuy2 : BitmapPixelFormat = BitmapPixelFormat ( 107i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapPixelFormat { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapPixelFormat { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapPixelFormat { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapPixelFormat;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapPropertiesView ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapPropertiesView;{7e0fe87a-3a70-48f8-9c55-196cf5a545f5})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapTransform ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapTransform;{ae755344-e268-4d35-adcf-e995d31a8d34})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ColorManagementMode ( pub i32 ) ; impl ColorManagementMode { pub const DoNotColorManage : ColorManagementMode = ColorManagementMode ( 0i32 ) ; pub const ColorManageToSRgb : ColorManagementMode = ColorManagementMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ColorManagementMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ColorManagementMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ColorManagementMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ColorManagementMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ExifOrientationMode ( pub i32 ) ; impl ExifOrientationMode { pub const IgnoreExifOrientation : ExifOrientationMode = ExifOrientationMode ( 0i32 ) ; pub const RespectExifOrientation : ExifOrientationMode = ExifOrientationMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ExifOrientationMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ExifOrientationMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ExifOrientationMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ExifOrientationMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{a53e04c4-399c-438c-b28f-a63a6b83d1a1}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , frameindex : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics { type Vtable = IBitmapDecoderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133300518 ,48367 ,20117 , [ 186 ,214 ,35 ,168 ,34 ,229 ,141 ,1 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , decoderid : :: windows :: Guid , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics2 { type Vtable = IBitmapDecoderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1354393834 ,39329 ,16580 , [ 128 ,217 ,174 ,240 ,218 ,250 ,108 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrame ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl < > IBitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72a49a1c-8081-438d-91bc-94ecfc8185c6}" ) ; } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IUnknown { fn from ( value : IBitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IUnknown { fn from ( value : & IBitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IInspectable { fn from ( value : IBitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IInspectable { fn from ( value : & IBitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrame_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrameWithSoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrameWithSoftwareBitmap { type Vtable = IBitmapFrameWithSoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4264066202 ,16908 ,18787 , [ 135 ,173 ,105 ,20 ,54 ,224 ,131 ,131 ] , ) ; } impl < > IBitmapFrameWithSoftwareBitmap { pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrameWithSoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fe287c9a-420c-4963-87ad-691436e08383}" ) ; } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrameWithSoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapPropertiesView ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{7e0fe87a-3a70-48f8-9c55-196cf5a545f5}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapTransform ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{ae755344-e268-4d35-adcf-e995d31a8d34}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result_size__ : * mut u32 , result__ : * mut * mut u8 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : BitmapBufferAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapFactory { type Vtable = ISoftwareBitmapFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382700905 ,11618 ,19783 , [ 166 ,179 ,79 ,219 ,106 ,7 ,253 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapStatics { type Vtable = ISoftwareBitmapStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3741550043 ,26415 ,19101 , [ 128 ,110 ,194 ,68 ,47 ,52 ,62 ,134 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct ImageStream ( :: windows :: IInspectable ) ; impl ImageStream { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::super::Storage::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::super::Storage::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for ImageStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.ImageStream;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for ImageStream { type Vtable = super::super::Storage::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for ImageStream { const NAME : & 'static str ="Windows.Graphics.Imaging.ImageStream" ; } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IUnknown { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IUnknown { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IInspectable { fn from ( value : ImageStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IInspectable { fn from ( value : & ImageStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for ImageStream { } unsafe impl :: std :: marker :: Sync for ImageStream { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PixelDataProvider ( :: windows :: IInspectable ) ; impl PixelDataProvider { pub fn DetachPixelData < > ( & self , ) -> :: windows :: Result < :: windows :: Array < u8 > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < u8 > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , :: windows :: Array :: < u8 > :: set_abi_len ( & mut result__ ) , & mut result__ as * mut _ as _ ) . and_then ( || result__ ) } } } unsafe impl :: windows :: RuntimeType for PixelDataProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.PixelDataProvider;{dd831f25-185c-4595-9fb9-ccbe6ec18a6f})" ) ; } unsafe impl :: windows :: Interface for PixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } impl :: windows :: RuntimeName for PixelDataProvider { const NAME : & 'static str ="Windows.Graphics.Imaging.PixelDataProvider" ; } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IUnknown { fn from ( value : PixelDataProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IUnknown { fn from ( value : & PixelDataProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IInspectable { fn from ( value : PixelDataProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IInspectable { fn from ( value : & PixelDataProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PixelDataProvider { } unsafe impl :: std :: marker :: Sync for PixelDataProvider { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct SoftwareBitmap ( :: windows :: IInspectable ) ; impl SoftwareBitmap { pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn IsReadOnly < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetDpiX < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetDpiY < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn LockBuffer < > ( & self , mode : BitmapBufferAccessMode , ) -> :: windows :: Result < BitmapBuffer > { let this = self ; unsafe { let mut result__ : < BitmapBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < BitmapBuffer > ( result__ ) } } pub fn CopyTo < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyToBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetReadOnlyView < > ( & self , ) -> :: windows :: Result < SoftwareBitmap > { let this = self ; unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Create < > ( format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateWithAlpha < > ( format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Copy < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Convert < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn ConvertWithAlpha < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , alpha , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn ISoftwareBitmapFactory < R , F : FnOnce ( & ISoftwareBitmapFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ISoftwareBitmapStatics < R , F : FnOnce ( & ISoftwareBitmapStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for SoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.SoftwareBitmap;{689e0708-7eef-483f-963f-da938818e073})" ) ; } unsafe impl :: windows :: Interface for SoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } impl :: windows :: RuntimeName for SoftwareBitmap { const NAME : & 'static str ="Windows.Graphics.Imaging.SoftwareBitmap" ; } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : SoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & SoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : SoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & SoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : SoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & SoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for SoftwareBitmap { } unsafe impl :: std :: marker :: Sync for SoftwareBitmap { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Media { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Ocr { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngineStatics { type Vtable = IOcrEngineStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1543481434 ,13188 ,13632 , [ 153 ,64 ,105 ,145 ,32 ,212 ,40 ,168 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrLine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrLine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrResult_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrWord ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrWord_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrEngine ( :: windows :: IInspectable ) ; impl OcrEngine { pub fn RecognizeAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Graphics::Imaging:: SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < OcrResult > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < OcrResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < OcrResult > > ( result__ ) } } pub fn RecognizerLanguage < > ( & self , ) -> :: windows :: Result < super::super::Globalization:: Language > { let this = self ; unsafe { let mut result__ : < super::super::Globalization:: Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Globalization:: Language > ( result__ ) } } pub fn MaxImageDimension < > ( ) -> :: windows :: Result < u32 > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } ) } pub fn AvailableRecognizerLanguages < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > ( result__ ) } ) } pub fn IsLanguageSupported < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < bool > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn TryCreateFromLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn TryCreateFromUserProfileLanguages < > ( ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn IOcrEngineStatics < R , F : FnOnce ( & IOcrEngineStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < OcrEngine , IOcrEngineStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for OcrEngine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrEngine;{5a14bc41-5b76-3140-b680-8825562683ac})" ) ; } unsafe impl :: windows :: Interface for OcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } impl :: windows :: RuntimeName for OcrEngine { const NAME : & 'static str ="Windows.Media.Ocr.OcrEngine" ; } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IUnknown { fn from ( value : OcrEngine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IUnknown { fn from ( value : & OcrEngine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IInspectable { fn from ( value : OcrEngine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IInspectable { fn from ( value : & OcrEngine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrEngine { } unsafe impl :: std :: marker :: Sync for OcrEngine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrLine ( :: windows :: IInspectable ) ; impl OcrLine { pub fn Words < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrWord > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrLine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrLine;{0043a16f-e31f-3a24-899c-d444bd088124})" ) ; } unsafe impl :: windows :: Interface for OcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } impl :: windows :: RuntimeName for OcrLine { const NAME : & 'static str ="Windows.Media.Ocr.OcrLine" ; } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IUnknown { fn from ( value : OcrLine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IUnknown { fn from ( value : & OcrLine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IInspectable { fn from ( value : OcrLine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IInspectable { fn from ( value : & OcrLine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrLine { } unsafe impl :: std :: marker :: Sync for OcrLine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrResult ( :: windows :: IInspectable ) ; impl OcrResult { pub fn Lines < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrLine > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > ( result__ ) } } pub fn TextAngle < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < f64 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < f64 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrResult;{9bd235b2-175b-3d6a-92e2-388c206e2f63})" ) ; } unsafe impl :: windows :: Interface for OcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } impl :: windows :: RuntimeName for OcrResult { const NAME : & 'static str ="Windows.Media.Ocr.OcrResult" ; } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IUnknown { fn from ( value : OcrResult ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IUnknown { fn from ( value : & OcrResult ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IInspectable { fn from ( value : OcrResult ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IInspectable { fn from ( value : & OcrResult ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrResult { } unsafe impl :: std :: marker :: Sync for OcrResult { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrWord ( :: windows :: IInspectable ) ; impl OcrWord { pub fn BoundingRect < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: Rect > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: Rect > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrWord { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrWord;{3c2a477a-5cd9-3525-ba2a-23d1e0a68a1d})" ) ; } unsafe impl :: windows :: Interface for OcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } impl :: windows :: RuntimeName for OcrWord { const NAME : & 'static str ="Windows.Media.Ocr.OcrWord" ; } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IUnknown { fn from ( value : OcrWord ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IUnknown { fn from ( value : & OcrWord ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IInspectable { fn from ( value : OcrWord ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IInspectable { fn from ( value : & OcrWord ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrWord { } unsafe impl :: std :: marker :: Sync for OcrWord { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CreationCollisionOption ( pub i32 ) ; impl CreationCollisionOption { pub const GenerateUniqueName : CreationCollisionOption = CreationCollisionOption ( 0i32 ) ; pub const ReplaceExisting : CreationCollisionOption = CreationCollisionOption ( 1i32 ) ; pub const FailIfExists : CreationCollisionOption = CreationCollisionOption ( 2i32 ) ; pub const OpenIfExists : CreationCollisionOption = CreationCollisionOption ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for CreationCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CreationCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CreationCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.CreationCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAccessMode ( pub i32 ) ; impl FileAccessMode { pub const Read : FileAccessMode = FileAccessMode ( 0i32 ) ; pub const ReadWrite : FileAccessMode = FileAccessMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for FileAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAccessMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAttributes ( pub u32 ) ; impl FileAttributes { pub const Normal : FileAttributes = FileAttributes ( 0u32 ) ; pub const ReadOnly : FileAttributes = FileAttributes ( 1u32 ) ; pub const Directory : FileAttributes = FileAttributes ( 16u32 ) ; pub const Archive : FileAttributes = FileAttributes ( 32u32 ) ; pub const Temporary : FileAttributes = FileAttributes ( 256u32 ) ; pub const LocallyIncomplete : FileAttributes = FileAttributes ( 512u32 ) ; } impl :: std :: convert :: From < u32 > for FileAttributes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAttributes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAttributes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAttributes;u4)" ) ; } impl :: std :: ops :: BitOr for FileAttributes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for FileAttributes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for FileAttributes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for FileAttributes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for FileAttributes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl < > IStorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fa3f6186-4214-428c-a64c-14c9ac7315ea}" ) ; } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IUnknown { fn from ( value : IStorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IUnknown { fn from ( value : & IStorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IInspectable { fn from ( value : IStorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IInspectable { fn from ( value : & IStorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile2 { type Vtable = IStorageFile2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2504936399 ,2679 ,17147 , [ 183 ,119 ,194 ,237 ,88 ,165 ,46 ,68 ] , ) ; } impl < > IStorageFile2 { pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{954e4bcf-0a77-42fb-b777-c2ed58a52e44}" ) ; } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IUnknown { fn from ( value : IStorageFile2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IUnknown { fn from ( value : & IStorageFile2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IInspectable { fn from ( value : IStorageFile2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IInspectable { fn from ( value : & IStorageFile2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFilePropertiesWithAvailability ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFilePropertiesWithAvailability { type Vtable = IStorageFilePropertiesWithAvailability_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2949365403 ,22571 ,16691 , [ 150 ,72 ,228 ,76 ,164 ,110 ,228 ,145 ] , ) ; } impl < > IStorageFilePropertiesWithAvailability { pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFilePropertiesWithAvailability { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{afcbbe9b-582b-4133-9648-e44ca46ee491}" ) ; } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFilePropertiesWithAvailability_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics { type Vtable = IStorageFileStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1501873936 ,56050 ,17352 , [ 139 ,180 ,164 ,211 ,234 ,207 ,208 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics2 { type Vtable = IStorageFileStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1551280001 ,8494 ,19193 , [ 143 ,4 ,116 ,12 ,174 ,16 ,137 ,116 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl < > IStorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b}" ) ; } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IUnknown { fn from ( value : IStorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IUnknown { fn from ( value : & IStorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IInspectable { fn from ( value : IStorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IInspectable { fn from ( value : & IStorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder2 { type Vtable = IStorageFolder2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3894929593 ,2265 ,19086 , [ 160 ,172 ,254 ,94 ,211 ,203 ,187 ,211 ] , ) ; } impl < > IStorageFolder2 { pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e827e8b9-08d9-4a8e-a0ac-fe5ed3cbbbd3}" ) ; } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : IStorageFolder2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : & IStorageFolder2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : IStorageFolder2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : & IStorageFolder2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder3 { type Vtable = IStorageFolder3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2673965209 ,48609 ,16676 , [ 174 ,179 ,176 ,106 ,217 ,111 ,152 ,212 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics { type Vtable = IStorageFolderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 150153215 ,34261 ,18617 , [ 174 ,233 ,40 ,81 ,30 ,51 ,159 ,159 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics2 { type Vtable = IStorageFolderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3026546115 ,29138 ,18045 , [ 139 ,41 ,55 ,31 ,15 ,98 ,191 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem { type Vtable = IStorageItem_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1107798422 ,51759 ,17143 , [ 189 ,232 ,139 ,16 ,69 ,122 ,127 ,48 ] , ) ; } impl < > IStorageItem { pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = self ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4207a996-ca2f-42f7-bde8-8b10457a7f30}" ) ; } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IUnknown { fn from ( value : IStorageItem ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IUnknown { fn from ( value : & IStorageItem ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IInspectable { fn from ( value : IStorageItem ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IInspectable { fn from ( value : & IStorageItem ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , option : StorageDeleteOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut FileAttributes ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , r#type : StorageItemTypes , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem2 { type Vtable = IStorageItem2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1408837330 ,2108 ,17027 , [ 180 ,91 ,129 ,192 ,7 ,35 ,126 ,68 ] , ) ; } impl < > IStorageItem2 { pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{53f926d2-083c-4283-b45b-81c007237e44}" ) ; } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IUnknown { fn from ( value : IStorageItem2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IUnknown { fn from ( value : & IStorageItem2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IInspectable { fn from ( value : IStorageItem2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IInspectable { fn from ( value : & IStorageItem2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageItem2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItem2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , item : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties { type Vtable = IStorageItemProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2254849144 ,32809 ,18174 , [ 167 ,137 ,28 ,47 ,62 ,47 ,251 ,92 ] , ) ; } impl < > IStorageItemProperties { pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = self ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{86664478-8029-46fe-a789-1c2f3e2ffb5c}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties2 { type Vtable = IStorageItemProperties2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2391189841 ,1209 ,19410 , [ 146 ,157 ,254 ,243 ,247 ,22 ,33 ,208 ] , ) ; } impl < > IStorageItemProperties2 { pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{8e86a951-04b9-4bd2-929d-fef3f71621d0}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemPropertiesWithProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemPropertiesWithProvider { type Vtable = IStorageItemPropertiesWithProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2249978779 ,25448 ,19950 , [ 180 ,14 ,116 ,104 ,74 ,92 ,231 ,20 ] , ) ; } impl < > IStorageItemPropertiesWithProvider { pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = self ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemPropertiesWithProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{861bf39b-6368-4dee-b40e-74684a5ce714}" ) ; } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemPropertiesWithProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageLibraryChangeTracker ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{9e157316-6073-44f6-9681-7492d1286c90}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e705eed4-d478-47d6-ba46-1a8ebe114a20}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct NameCollisionOption ( pub i32 ) ; impl NameCollisionOption { pub const GenerateUniqueName : NameCollisionOption = NameCollisionOption ( 0i32 ) ; pub const ReplaceExisting : NameCollisionOption = NameCollisionOption ( 1i32 ) ; pub const FailIfExists : NameCollisionOption = NameCollisionOption ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for NameCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for NameCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for NameCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.NameCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageDeleteOption ( pub i32 ) ; impl StorageDeleteOption { pub const Default : StorageDeleteOption = StorageDeleteOption ( 0i32 ) ; pub const PermanentDelete : StorageDeleteOption = StorageDeleteOption ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for StorageDeleteOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageDeleteOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageDeleteOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageDeleteOption;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFile ( :: windows :: IInspectable ) ; impl StorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageFilePropertiesWithAvailability > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } pub fn GetFileFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromApplicationUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , > ( uri : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn IStorageFileStatics < R , F : FnOnce ( & IStorageFileStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFileStatics2 < R , F : FnOnce ( & IStorageFileStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFile;{fa3f6186-4214-428c-a64c-14c9ac7315ea})" ) ; } unsafe impl :: windows :: Interface for StorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl :: windows :: RuntimeName for StorageFile { const NAME : & 'static str ="Windows.Storage.StorageFile" ; } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IUnknown { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IUnknown { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IInspectable { fn from ( value : StorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IInspectable { fn from ( value : & StorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFile > for IStorageFile { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for IStorageFile { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: std :: convert :: TryInto :: < IStorageFile2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: std :: convert :: TryInto :: < IStorageFilePropertiesWithAvailability > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFolder ( :: windows :: IInspectable ) ; impl StorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = & :: windows :: Interface :: cast :: < IStorageFolder2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : Search:: CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : Search:: CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetFolderFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn TryGetChangeTracker < > ( & self , ) -> :: windows :: Result < StorageLibraryChangeTracker > { let this = & :: windows :: Interface :: cast :: < IStorageFolder3 > ( self ) ? ; unsafe { let mut result__ : < StorageLibraryChangeTracker as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageLibraryChangeTracker > ( result__ ) } } pub fn GetFolderFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn IStorageFolderStatics < R , F : FnOnce ( & IStorageFolderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFolderStatics2 < R , F : FnOnce ( & IStorageFolderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFolder;{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b})" ) ; } unsafe impl :: windows :: Interface for StorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl :: windows :: RuntimeName for StorageFolder { const NAME : & 'static str ="Windows.Storage.StorageFolder" ; } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IUnknown { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IUnknown { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IInspectable { fn from ( value : StorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IInspectable { fn from ( value : & StorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFolder > for IStorageFolder { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for IStorageFolder { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: std :: convert :: TryInto :: < IStorageFolder2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: std :: convert :: TryInto :: < Search:: IStorageFolderQueryOperations > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageItemTypes ( pub u32 ) ; impl StorageItemTypes { pub const None : StorageItemTypes = StorageItemTypes ( 0u32 ) ; pub const File : StorageItemTypes = StorageItemTypes ( 1u32 ) ; pub const Folder : StorageItemTypes = StorageItemTypes ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageItemTypes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageItemTypes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageItemTypes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageItemTypes;u4)" ) ; } impl :: std :: ops :: BitOr for StorageItemTypes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageItemTypes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageItemTypes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageItemTypes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageItemTypes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageLibraryChangeTracker ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageLibraryChangeTracker;{9e157316-6073-44f6-9681-7492d1286c90})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageOpenOptions ( pub u32 ) ; impl StorageOpenOptions { pub const None : StorageOpenOptions = StorageOpenOptions ( 0u32 ) ; pub const AllowOnlyReaders : StorageOpenOptions = StorageOpenOptions ( 1u32 ) ; pub const AllowReadersAndWriters : StorageOpenOptions = StorageOpenOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageOpenOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageOpenOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageOpenOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageOpenOptions;u4)" ) ; } impl :: std :: ops :: BitOr for StorageOpenOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageOpenOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageOpenOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageOpenOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageOpenOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageProvider ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageProvider;{e705eed4-d478-47d6-ba46-1a8ebe114a20})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageStreamTransaction ( :: windows :: IInspectable ) ; impl StorageStreamTransaction { pub fn Stream < > ( & self , ) -> :: windows :: Result < Streams:: IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Streams:: IRandomAccessStream > ( result__ ) } } pub fn CommitAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl :: windows :: RuntimeType for StorageStreamTransaction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageStreamTransaction;{f67cf363-a53d-4d94-ae2c-67232d93acdd})" ) ; } unsafe impl :: windows :: Interface for StorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } impl :: windows :: RuntimeName for StorageStreamTransaction { const NAME : & 'static str ="Windows.Storage.StorageStreamTransaction" ; } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : StorageStreamTransaction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : & StorageStreamTransaction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : StorageStreamTransaction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : & StorageStreamTransaction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageStreamTransaction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageStreamTransaction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequest ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StreamedFileDataRequest { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } unsafe impl :: windows :: RuntimeType for StreamedFileDataRequest { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StreamedFileDataRequest;{905a0fe6-bc53-11df-8c49-001e4fc686da})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StreamedFileDataRequestedHandler ( :: windows :: IUnknown , ) where ; impl < > StreamedFileDataRequestedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = StreamedFileDataRequestedHandler_box :: < F > { vtable : & StreamedFileDataRequestedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , StreamedFileDataRequest > , > ( & self , stream : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for StreamedFileDataRequestedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({fef6a824-2fe1-4d07-a35b-b77c50b5f4cc})" ) ; } unsafe impl < > :: windows :: Interface for StreamedFileDataRequestedHandler { type Vtable = StreamedFileDataRequestedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4277577764 ,12257 ,19719 , [ 163 ,91 ,183 ,124 ,80 ,181 ,244 ,204 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequestedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct StreamedFileDataRequestedHandler_box < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const StreamedFileDataRequestedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > StreamedFileDataRequestedHandler_box :: < F > { const VTABLE : StreamedFileDataRequestedHandler_abi = StreamedFileDataRequestedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < StreamedFileDataRequestedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & stream as * const < StreamedFileDataRequest as :: windows :: Abi > :: Abi as * const < StreamedFileDataRequest as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileProperties { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BasicProperties ( :: windows :: IInspectable ) ; impl BasicProperties { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn DateModified < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn ItemDate < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BasicProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.BasicProperties;{d05d55db-785e-4a66-be02-9beec58aea81})" ) ; } unsafe impl :: windows :: Interface for BasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } impl :: windows :: RuntimeName for BasicProperties { const NAME : & 'static str ="Windows.Storage.FileProperties.BasicProperties" ; } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IUnknown { fn from ( value : BasicProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IUnknown { fn from ( value : & BasicProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IInspectable { fn from ( value : BasicProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IInspectable { fn from ( value : & BasicProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : BasicProperties ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : & BasicProperties ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: std :: convert :: TryInto :: < IStorageItemExtraProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBasicProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBasicProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemContentProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{05294bad-bc38-48bf-85d7-770e0e2ae0ba}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemExtraProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemExtraProperties { type Vtable = IStorageItemExtraProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3309527474 ,21709 ,17195 , [ 189 ,188 ,75 ,25 ,196 ,180 ,112 ,215 ] , ) ; } impl < > IStorageItemExtraProperties { pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemExtraProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c54361b2-54cd-432b-bdbc-4b19c4b470d7}" ) ; } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemExtraProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemExtraProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemExtraProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemExtraProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemExtraProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestoretrieve : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestosave : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IThumbnailProperties { type Vtable = IThumbnailProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1765659695 ,56295 ,18869 , [ 179 ,179 ,40 ,147 ,172 ,93 ,52 ,35 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut ThumbnailType ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemContentProperties ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemContentProperties;{05294bad-bc38-48bf-85d7-770e0e2ae0ba})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageItemThumbnail ( :: windows :: IInspectable ) ; impl StorageItemThumbnail { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn OriginalWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OriginalHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReturnedSmallerCachedSize < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < ThumbnailType > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < ThumbnailType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < ThumbnailType > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StorageItemThumbnail { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemThumbnail;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for StorageItemThumbnail { type Vtable = super::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for StorageItemThumbnail { const NAME : & 'static str ="Windows.Storage.FileProperties.StorageItemThumbnail" ; } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : StorageItemThumbnail ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : & StorageItemThumbnail ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailMode ( pub i32 ) ; impl ThumbnailMode { pub const PicturesView : ThumbnailMode = ThumbnailMode ( 0i32 ) ; pub const VideosView : ThumbnailMode = ThumbnailMode ( 1i32 ) ; pub const MusicView : ThumbnailMode = ThumbnailMode ( 2i32 ) ; pub const DocumentsView : ThumbnailMode = ThumbnailMode ( 3i32 ) ; pub const ListView : ThumbnailMode = ThumbnailMode ( 4i32 ) ; pub const SingleItem : ThumbnailMode = ThumbnailMode ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailOptions ( pub u32 ) ; impl ThumbnailOptions { pub const None : ThumbnailOptions = ThumbnailOptions ( 0u32 ) ; pub const ReturnOnlyIfCached : ThumbnailOptions = ThumbnailOptions ( 1u32 ) ; pub const ResizeThumbnail : ThumbnailOptions = ThumbnailOptions ( 2u32 ) ; pub const UseCurrentScale : ThumbnailOptions = ThumbnailOptions ( 4u32 ) ; } impl :: std :: convert :: From < u32 > for ThumbnailOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailOptions;u4)" ) ; } impl :: std :: ops :: BitOr for ThumbnailOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for ThumbnailOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for ThumbnailOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for ThumbnailOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for ThumbnailOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailType ( pub i32 ) ; impl ThumbnailType { pub const Image : ThumbnailType = ThumbnailType ( 0i32 ) ; pub const Icon : ThumbnailType = ThumbnailType ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailType;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Search { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFileQuery ( pub i32 ) ; impl CommonFileQuery { pub const DefaultQuery : CommonFileQuery = CommonFileQuery ( 0i32 ) ; pub const OrderByName : CommonFileQuery = CommonFileQuery ( 1i32 ) ; pub const OrderByTitle : CommonFileQuery = CommonFileQuery ( 2i32 ) ; pub const OrderByMusicProperties : CommonFileQuery = CommonFileQuery ( 3i32 ) ; pub const OrderBySearchRank : CommonFileQuery = CommonFileQuery ( 4i32 ) ; pub const OrderByDate : CommonFileQuery = CommonFileQuery ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFileQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFileQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFileQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFileQuery;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFolderQuery ( pub i32 ) ; impl CommonFolderQuery { pub const DefaultQuery : CommonFolderQuery = CommonFolderQuery ( 0i32 ) ; pub const GroupByYear : CommonFolderQuery = CommonFolderQuery ( 100i32 ) ; pub const GroupByMonth : CommonFolderQuery = CommonFolderQuery ( 101i32 ) ; pub const GroupByArtist : CommonFolderQuery = CommonFolderQuery ( 102i32 ) ; pub const GroupByAlbum : CommonFolderQuery = CommonFolderQuery ( 103i32 ) ; pub const GroupByAlbumArtist : CommonFolderQuery = CommonFolderQuery ( 104i32 ) ; pub const GroupByComposer : CommonFolderQuery = CommonFolderQuery ( 105i32 ) ; pub const GroupByGenre : CommonFolderQuery = CommonFolderQuery ( 106i32 ) ; pub const GroupByPublishedYear : CommonFolderQuery = CommonFolderQuery ( 107i32 ) ; pub const GroupByRating : CommonFolderQuery = CommonFolderQuery ( 108i32 ) ; pub const GroupByTag : CommonFolderQuery = CommonFolderQuery ( 109i32 ) ; pub const GroupByAuthor : CommonFolderQuery = CommonFolderQuery ( 110i32 ) ; pub const GroupByType : CommonFolderQuery = CommonFolderQuery ( 111i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFolderQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFolderQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFolderQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFolderQuery;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IQueryOptions ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IQueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IQueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{1e5e46ee-0f45-4838-a8e9-d0479d446c30}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{52fda447-2baa-412c-b29f-d4b1778efa1e}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolderQueryOperations ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryOperations { type Vtable = IStorageFolderQueryOperations_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3410218185 ,17515 ,19023 , [ 190 ,151 ,117 ,119 ,113 ,190 ,82 ,3 ] , ) ; } impl < > IStorageFolderQueryOperations { pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IndexedState > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryOperations { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cb43ccc9-446b-4a4f-be97-757771be5203}" ) ; } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : IStorageFolderQueryOperations ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : & IStorageFolderQueryOperations ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : IStorageFolderQueryOperations ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : & IStorageFolderQueryOperations ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryOperations_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{6654c911-7d66-46fa-aecf-e4a4baa93ab8}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e8948079-9d58-47b8-b2b2-41b07f4795f9}" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct IndexedState ( pub i32 ) ; impl IndexedState { pub const Unknown : IndexedState = IndexedState ( 0i32 ) ; pub const NotIndexed : IndexedState = IndexedState ( 1i32 ) ; pub const PartiallyIndexed : IndexedState = IndexedState ( 2i32 ) ; pub const FullyIndexed : IndexedState = IndexedState ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for IndexedState { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for IndexedState { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for IndexedState { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.IndexedState;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct QueryOptions ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for QueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl :: windows :: RuntimeType for QueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.QueryOptions;{1e5e46ee-0f45-4838-a8e9-d0479d446c30})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFileQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFileQueryResult;{52fda447-2baa-412c-b29f-d4b1778efa1e})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFolderQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFolderQueryResult;{6654c911-7d66-46fa-aecf-e4a4baa93ab8})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageItemQueryResult;{e8948079-9d58-47b8-b2b2-41b07f4795f9})" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Streams { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBuffer { type Vtable = IBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821408 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IBuffer { pub fn Capacity < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Length < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetLength < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe0-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IUnknown { fn from ( value : IBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IUnknown { fn from ( value : & IBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IInspectable { fn from ( value : IBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IInspectable { fn from ( value : & IBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IContentTypeProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IContentTypeProvider { type Vtable = IContentTypeProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2547030181 ,15257 ,19945 , [ 136 ,165 ,225 ,29 ,47 ,80 ,199 ,149 ] , ) ; } impl < > IContentTypeProvider { pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IContentTypeProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{97d098a5-3b99-4de9-88a5-e11d2f50c795}" ) ; } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : IContentTypeProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : & IContentTypeProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : IContentTypeProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : & IContentTypeProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IContentTypeProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStream { type Vtable = IInputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821410 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IInputStream { pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe2-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IUnknown { fn from ( value : IInputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IUnknown { fn from ( value : & IInputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IInspectable { fn from ( value : IInputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IInspectable { fn from ( value : & IInputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IInputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IInputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , count : u32 , options : InputStreamOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStreamReference { type Vtable = IInputStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133681944 ,24265 ,19290 , [ 145 ,156 ,66 ,5 ,176 ,200 ,4 ,182 ] , ) ; } impl < > IInputStreamReference { pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IInputStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IInputStream > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{43929d18-5ec9-4b5a-919c-4205b0c804b6}" ) ; } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IUnknown { fn from ( value : IInputStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IUnknown { fn from ( value : & IInputStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IInspectable { fn from ( value : IInputStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IInspectable { fn from ( value : & IInputStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IOutputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOutputStream { type Vtable = IOutputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IOutputStream { pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IOutputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe6-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IUnknown { fn from ( value : IOutputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IUnknown { fn from ( value : & IOutputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IInspectable { fn from ( value : IOutputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IInspectable { fn from ( value : & IOutputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IOutputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IOutputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOutputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStream { type Vtable = IRandomAccessStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821409 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IRandomAccessStream { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = self ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = self ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe1-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : IRandomAccessStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : IRandomAccessStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamReference { type Vtable = IRandomAccessStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 871248180 ,7638 ,20026 , [ 128 ,103 ,209 ,193 ,98 ,232 ,100 ,43 ] , ) ; } impl < > IRandomAccessStreamReference { pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{33ee3134-1dd6-4e3a-8067-d1c162e8642b}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamWithContentType ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamWithContentType { type Vtable = IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl < > IRandomAccessStreamWithContentType { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamWithContentType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cc254827-4b3d-438f-9232-10c76bc7e038}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: std :: convert :: TryInto :: < IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: std :: convert :: TryInto :: < IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamWithContentType_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct InputStreamOptions ( pub u32 ) ; impl InputStreamOptions { pub const None : InputStreamOptions = InputStreamOptions ( 0u32 ) ; pub const Partial : InputStreamOptions = InputStreamOptions ( 1u32 ) ; pub const ReadAhead : InputStreamOptions = InputStreamOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for InputStreamOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for InputStreamOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for InputStreamOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Streams.InputStreamOptions;u4)" ) ; } impl :: std :: ops :: BitOr for InputStreamOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for InputStreamOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for InputStreamOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for InputStreamOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for InputStreamOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUser ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUser { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IUser { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{df9a26c6-e746-4bcd-b5d4-120103c4209b}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct User ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for User { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl :: windows :: RuntimeType for User { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.System.User;{df9a26c6-e746-4bcd-b5d4-120103c4209b})" ) ; } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/win_ocr_bindings-6e1ac750950c780f/out/windows.rs:1:9262 [INFO] [stdout] | [INFO] [stdout] 1 | ...( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( thi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > AsyncActionCompletedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionCompletedHandler_box :: < F > { vtable : & AsyncActionCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncAction > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7})" ) ; } unsafe impl < > :: windows :: Interface for AsyncActionCompletedHandler { type Vtable = AsyncActionCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2767019137 ,30409 ,16573 , [ 139 ,230 ,177 ,217 ,15 ,178 ,10 ,231 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct AsyncActionCompletedHandler_box < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const AsyncActionCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionCompletedHandler_box :: < F > { const VTABLE : AsyncActionCompletedHandler_abi = AsyncActionCompletedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncActionCompletedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncAction as :: windows :: Abi > :: Abi as * const < IAsyncAction as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationCompletedHandler < TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , > AsyncOperationCompletedHandler < TResult > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationCompletedHandler_box :: < TResult , F > { vtable : & AsyncOperationCompletedHandler_box :: < TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{fcdcf02c-e5d8-4478-915a-4d90b74b83a5}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationCompletedHandler < TResult > { type Vtable = AsyncOperationCompletedHandler_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationCompletedHandler < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationCompletedHandler_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationCompletedHandler_box < TResult , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationCompletedHandler_abi < TResult > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationCompletedHandler_box :: < TResult , F > { const VTABLE : AsyncOperationCompletedHandler_abi < TResult > = AsyncOperationCompletedHandler_abi :: < TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationCompletedHandler < TResult > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { let _ = Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: Abi as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationProgressHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationProgressHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationProgressHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , Param1 : :: windows :: IntoParam < 'a , TProgress > , > ( & self , asyncinfo : Param0 , progressinfo : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationProgressHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{55690902-0aab-421a-8778-f8ce5026d758}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationProgressHandler < TResult , TProgress > { type Vtable = AsyncOperationProgressHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationProgressHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationProgressHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationProgressHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationProgressHandler_abi < TResult , TProgress > = AsyncOperationProgressHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationWithProgressCompletedHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e85df41d-6aa7-46e3-a8e2-f009d840c627}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type Vtable = AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationWithProgressCompletedHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > = AsyncOperationWithProgressCompletedHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AsyncStatus ( pub i32 ) ; impl AsyncStatus { pub const Canceled : AsyncStatus = AsyncStatus ( 2i32 ) ; pub const Completed : AsyncStatus = AsyncStatus ( 1i32 ) ; pub const Error : AsyncStatus = AsyncStatus ( 3i32 ) ; pub const Started : AsyncStatus = AsyncStatus ( 0i32 ) ; } impl :: std :: convert :: From < i32 > for AsyncStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AsyncStatus { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & self . UniversalTime ) . finish ( ) } } impl :: std :: cmp :: PartialEq for DateTime { fn eq ( & self , other : & Self ) -> bool { self . UniversalTime == other . UniversalTime } } impl :: std :: cmp :: Eq for DateTime { } unsafe impl :: windows :: Abi for DateTime { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for DateTime { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.DateTime;i8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncAction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncAction { type Vtable = IAsyncAction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1516535814 ,33850 ,19881 , [ 134 ,91 ,157 ,38 ,229 ,223 ,173 ,123 ] , ) ; } impl < > IAsyncAction { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionCompletedHandler > { let this = self ; unsafe { let mut result__ : < AsyncActionCompletedHandler as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < > :: windows :: RuntimeType for IAsyncAction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{5a648006-843a-4da9-865b-9d26e5dfad7b}" ) ; } impl < > :: std :: future :: Future for IAsyncAction { type Output = :: windows :: Result < ( ) > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IUnknown { fn from ( value : IAsyncAction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IUnknown { fn from ( value : & IAsyncAction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IInspectable { fn from ( value : IAsyncAction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IInspectable { fn from ( value : & IAsyncAction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncAction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncAction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < > :: std :: marker :: Send for IAsyncAction { } unsafe impl < > :: std :: marker :: Sync for IAsyncAction { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncAction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncInfo ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncInfo { type Vtable = IAsyncInfo_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 54 ,0 ,0 , [ 192 ,0 ,0 ,0 ,0 ,0 ,0 ,70 ] , ) ; } impl < > IAsyncInfo { pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = self ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = self ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IUnknown { fn from ( value : IAsyncInfo ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IUnknown { fn from ( value : & IAsyncInfo ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IInspectable { fn from ( value : IAsyncInfo ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IInspectable { fn from ( value : & IAsyncInfo ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncInfo_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut AsyncStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: HRESULT ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperation < TResult > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperation < TResult > { type Vtable = IAsyncOperation_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperation < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , > IAsyncOperation < TResult > { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationCompletedHandler < TResult > > { let this = self ; unsafe { let mut result__ : < AsyncOperationCompletedHandler < TResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationCompletedHandler < TResult > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperation < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9fc2b0bb-e446-44e2-aa61-9cab8f636af2}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperation < TResult > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : IAsyncOperation < TResult > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : IAsyncOperation < TResult > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperation < TResult > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperation < TResult > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperation < TResult > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperation_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperationWithProgress < TResult , TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperationWithProgress < TResult , TProgress > { type Vtable = IAsyncOperationWithProgress_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > IAsyncOperationWithProgress < TResult , TProgress > { pub fn SetProgress < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncOperationProgressHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperationWithProgress < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{b5d036d7-e297-498f-ba60-0289e76e23dd}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperationWithProgress < TResult , TProgress > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperationWithProgress < TResult , TProgress > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperationWithProgress < TResult , TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperationWithProgress_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IClosable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IClosable { type Vtable = IClosable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 819308585 ,32676 ,16422 , [ 131 ,187 ,215 ,91 ,174 ,78 ,169 ,158 ] , ) ; } impl < > IClosable { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } impl < > :: std :: convert :: From < IClosable > for :: windows :: IUnknown { fn from ( value : IClosable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IUnknown { fn from ( value : & IClosable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IClosable > for :: windows :: IInspectable { fn from ( value : IClosable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IInspectable { fn from ( value : & IClosable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IClosable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IPropertyValue ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValue { type Vtable = IPropertyValue_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1272349405 ,30036 ,16617 , [ 154 ,155 ,130 ,101 ,78 ,222 ,126 ,98 ] , ) ; } impl < > IPropertyValue { pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = self ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = self ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = self ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = self ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = self ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = self ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = self ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = self ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = self ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = self ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IUnknown { fn from ( value : IPropertyValue ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IUnknown { fn from ( value : & IPropertyValue ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IInspectable { fn from ( value : IPropertyValue ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IInspectable { fn from ( value : & IPropertyValue ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValue_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PropertyType ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Rect ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IReference < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReference < T > { type Vtable = IReference_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReference < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReference < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17706-2d65-11e0-9ae8-d48564015472}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IUnknown { fn from ( value : IReference < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IUnknown { fn from ( value : & IReference < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IInspectable { fn from ( value : IReference < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IInspectable { fn from ( value : & IReference < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : IReference < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : & IReference < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: std :: convert :: TryInto :: < IPropertyValue > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReference_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStringable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStringable { type Vtable = IStringable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2520162132 ,36534 ,18672 , [ 171 ,206 ,193 ,178 ,17 ,230 ,39 ,195 ] , ) ; } impl < > IStringable { pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } impl < > :: std :: convert :: From < IStringable > for :: windows :: IUnknown { fn from ( value : IStringable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IUnknown { fn from ( value : & IStringable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStringable > for :: windows :: IInspectable { fn from ( value : IStringable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IInspectable { fn from ( value : & IStringable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStringable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriEscapeStatics { type Vtable = IUriEscapeStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3251909306 ,51236 ,17490 , [ 167 ,253 ,81 ,43 ,195 ,187 ,233 ,161 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , tounescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClass { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , puri : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassFactory { type Vtable = IUriRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1151957359 ,29246 ,20447 , [ 162 ,24 ,3 ,62 ,117 ,176 ,192 ,132 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassWithAbsoluteCanonicalUri { type Vtable = IUriRuntimeClassWithAbsoluteCanonicalUri_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1972213345 ,8732 ,18447 , [ 163 ,57 ,80 ,101 ,102 ,115 ,244 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IWwwFormUrlDecoderEntry ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl < > IWwwFormUrlDecoderEntry { pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderEntry_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClass { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClassFactory { type Vtable = IWwwFormUrlDecoderRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1535929149 ,9390 ,16821 , [ 161 ,191 ,240 ,195 ,213 ,68 ,132 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Point { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y } } impl :: std :: cmp :: Eq for Point { } unsafe impl :: windows :: Abi for Point { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Point { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Point;f4;f4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PropertyType ( pub i32 ) ; impl PropertyType { pub const Empty : PropertyType = PropertyType ( 0i32 ) ; pub const UInt8 : PropertyType = PropertyType ( 1i32 ) ; pub const Int16 : PropertyType = PropertyType ( 2i32 ) ; pub const UInt16 : PropertyType = PropertyType ( 3i32 ) ; pub const Int32 : PropertyType = PropertyType ( 4i32 ) ; pub const UInt32 : PropertyType = PropertyType ( 5i32 ) ; pub const Int64 : PropertyType = PropertyType ( 6i32 ) ; pub const UInt64 : PropertyType = PropertyType ( 7i32 ) ; pub const Single : PropertyType = PropertyType ( 8i32 ) ; pub const Double : PropertyType = PropertyType ( 9i32 ) ; pub const Char16 : PropertyType = PropertyType ( 10i32 ) ; pub const Boolean : PropertyType = PropertyType ( 11i32 ) ; pub const String : PropertyType = PropertyType ( 12i32 ) ; pub const Inspectable : PropertyType = PropertyType ( 13i32 ) ; pub const DateTime : PropertyType = PropertyType ( 14i32 ) ; pub const TimeSpan : PropertyType = PropertyType ( 15i32 ) ; pub const Guid : PropertyType = PropertyType ( 16i32 ) ; pub const Point : PropertyType = PropertyType ( 17i32 ) ; pub const Size : PropertyType = PropertyType ( 18i32 ) ; pub const Rect : PropertyType = PropertyType ( 19i32 ) ; pub const OtherType : PropertyType = PropertyType ( 20i32 ) ; pub const UInt8Array : PropertyType = PropertyType ( 1025i32 ) ; pub const Int16Array : PropertyType = PropertyType ( 1026i32 ) ; pub const UInt16Array : PropertyType = PropertyType ( 1027i32 ) ; pub const Int32Array : PropertyType = PropertyType ( 1028i32 ) ; pub const UInt32Array : PropertyType = PropertyType ( 1029i32 ) ; pub const Int64Array : PropertyType = PropertyType ( 1030i32 ) ; pub const UInt64Array : PropertyType = PropertyType ( 1031i32 ) ; pub const SingleArray : PropertyType = PropertyType ( 1032i32 ) ; pub const DoubleArray : PropertyType = PropertyType ( 1033i32 ) ; pub const Char16Array : PropertyType = PropertyType ( 1034i32 ) ; pub const BooleanArray : PropertyType = PropertyType ( 1035i32 ) ; pub const StringArray : PropertyType = PropertyType ( 1036i32 ) ; pub const InspectableArray : PropertyType = PropertyType ( 1037i32 ) ; pub const DateTimeArray : PropertyType = PropertyType ( 1038i32 ) ; pub const TimeSpanArray : PropertyType = PropertyType ( 1039i32 ) ; pub const GuidArray : PropertyType = PropertyType ( 1040i32 ) ; pub const PointArray : PropertyType = PropertyType ( 1041i32 ) ; pub const SizeArray : PropertyType = PropertyType ( 1042i32 ) ; pub const RectArray : PropertyType = PropertyType ( 1043i32 ) ; pub const OtherTypeArray : PropertyType = PropertyType ( 1044i32 ) ; } impl :: std :: convert :: From < i32 > for PropertyType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PropertyType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for PropertyType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Rect { pub X : f32 , pub Y : f32 , pub Width : f32 , pub Height : f32 } impl Rect { } impl :: std :: default :: Default for Rect { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Rect { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y && self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Rect { } unsafe impl :: windows :: Abi for Rect { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Rect { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Size { fn eq ( & self , other : & Self ) -> bool { self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Size { } unsafe impl :: windows :: Abi for Size { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Size { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & self . Duration ) . finish ( ) } } impl :: std :: cmp :: PartialEq for TimeSpan { fn eq ( & self , other : & Self ) -> bool { self . Duration == other . Duration } } impl :: std :: cmp :: Eq for TimeSpan { } unsafe impl :: windows :: Abi for TimeSpan { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for TimeSpan { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.TimeSpan;i8)" ) ; } impl :: std :: convert :: From < :: std :: time :: Duration > for TimeSpan { fn from ( value : :: std :: time :: Duration ) -> Self { Self { Duration : ( value . as_nanos ( ) / 100 ) as i64 , } } } impl :: std :: convert :: From < TimeSpan > for :: std :: time :: Duration { fn from ( value : TimeSpan ) -> Self { :: std :: time :: Duration :: from_nanos ( ( value . Duration * 100 ) as u64 ) } } impl < 'a > :: windows :: IntoParam < 'a , TimeSpan > for :: std :: time :: Duration { fn into_param ( self ) -> :: windows :: Param < 'a , TimeSpan > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Uri ( :: windows :: IInspectable ) ; impl Uri { pub fn AbsoluteUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Domain < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Extension < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Fragment < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Host < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Password < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Query < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn QueryParsed < > ( & self , ) -> :: windows :: Result < WwwFormUrlDecoder > { let this = self ; unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } } pub fn RawUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn SchemeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UserName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Port < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn Suspicious < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , Param0 : :: windows :: IntoParam < 'a , Uri > , > ( & self , puri : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , relativeuri : Param0 , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } } pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStringable > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( tounescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( toescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( uri : Param0 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( baseuri : Param0 , relativeuri : Param1 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , baseuri . into_param ( ) . abi ( ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn IUriEscapeStatics < R , F : FnOnce ( & IUriEscapeStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriEscapeStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IUriRuntimeClassFactory < R , F : FnOnce ( & IUriRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Uri { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Uri;{9e365e57-48b2-4160-956f-c7385120bbfc})" ) ; } unsafe impl :: windows :: Interface for Uri { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } impl :: windows :: RuntimeName for Uri { const NAME : & 'static str ="Windows.Foundation.Uri" ; } impl < > :: std :: convert :: From < Uri > for :: windows :: IUnknown { fn from ( value : Uri ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IUnknown { fn from ( value : & Uri ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Uri > for :: windows :: IInspectable { fn from ( value : Uri ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IInspectable { fn from ( value : & Uri ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : Uri ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : & Uri ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: std :: convert :: TryInto :: < IStringable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for Uri { } unsafe impl :: std :: marker :: Sync for Uri { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoder ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoder { pub fn GetFirstValueByName < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > { let this = & :: windows :: Interface :: cast :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > ( result__ ) } } pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < IWwwFormUrlDecoderEntry > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( query : Param0 , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , query . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } ) } pub fn IWwwFormUrlDecoderRuntimeClassFactory < R , F : FnOnce ( & IWwwFormUrlDecoderRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < WwwFormUrlDecoder , IWwwFormUrlDecoderRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoder;{d45a0451-f225-4542-9296-0e1df5d254df})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoder { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoder { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoder" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : WwwFormUrlDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoder { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoder { } impl < > :: std :: iter :: IntoIterator for WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < > :: std :: iter :: IntoIterator for & WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( :: std :: convert :: TryInto :: try_into ( self ) . ok ( ) ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Collections { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterable < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterable < T > { type Vtable = IIterable_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterable < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterable < T > { pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = self ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{faa585ea-6214-4217-afda-7f46de5869b3}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IUnknown { fn from ( value : IIterable < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IUnknown { fn from ( value : & IIterable < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IInspectable { fn from ( value : IIterable < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IInspectable { fn from ( value : & IIterable < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterable_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterator < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterator < T > { type Vtable = IIterator_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterator < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterator < T > { pub fn Current < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn HasCurrent < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn MoveNext < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterator < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6a79e863-4300-459a-9966-cbb660963ee1}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IUnknown { fn from ( value : IIterator < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IUnknown { fn from ( value : & IIterator < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IInspectable { fn from ( value : IIterator < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IInspectable { fn from ( value : & IIterator < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for IIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { let result = self . Current ( ) . ok ( ) ; if result . is_some ( ) { self . MoveNext ( ) . ok ( ) ? ; } result } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterator_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IKeyValuePair < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IKeyValuePair < K , V > { type Vtable = IKeyValuePair_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IKeyValuePair < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IKeyValuePair < K , V > { pub fn Key < > ( & self , ) -> :: windows :: Result < K > { let this = self ; unsafe { let mut result__ : < K as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < K > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IKeyValuePair < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{02b51929-c1c4-4a7e-8940-0312b5c18500}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : IKeyValuePair < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : & IKeyValuePair < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : IKeyValuePair < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : & IKeyValuePair < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IKeyValuePair_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMap < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMap < K , V > { type Vtable = IMap_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMap < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMap < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IMapView < K , V > > { let this = self ; unsafe { let mut result__ : < IMapView < K , V > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IMapView < K , V > > ( result__ ) } } pub fn Insert < 'a , Param0 : :: windows :: IntoParam < 'a , K > , Param1 : :: windows :: IntoParam < 'a , V > , > ( & self , key : Param0 , value : Param1 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Remove < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMap < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{3c2925fe-8519-45c1-aa79-197b6718c1c1}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IUnknown { fn from ( value : IMap < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IUnknown { fn from ( value : & IMap < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IInspectable { fn from ( value : IMap < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IInspectable { fn from ( value : & IMap < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMap < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMap < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMap_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , value : < V as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMapView < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMapView < K , V > { type Vtable = IMapView_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMapView < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMapView < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Split < > ( & self , first : & mut :: std :: option :: Option < IMapView < K , V > > , second : & mut :: std :: option :: Option < IMapView < K , V > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , first as * mut _ as _ , second as * mut _ as _ , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMapView < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e480ce40-a338-4ada-adcf-272272e48cb9}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : IMapView < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : & IMapView < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : IMapView < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : & IMapView < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMapView < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMapView < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMapView_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , first : * mut :: windows :: RawPtr , second : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVector < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVector < T > { type Vtable = IVector_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVector < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVector < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IVectorView < T > > { let this = self ; unsafe { let mut result__ : < IVectorView < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IVectorView < T > > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn InsertAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAt < > ( & self , index : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , index , ) . ok ( ) } } pub fn Append < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAtEnd < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReplaceAll < > ( & self , items : & [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute ( items . as_ptr ( ) ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVector < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{913337e9-11a1-4345-a3a2-4e7f956e222d}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IUnknown { fn from ( value : IVector < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IUnknown { fn from ( value : & IVector < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IInspectable { fn from ( value : IVector < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IInspectable { fn from ( value : & IVector < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVector < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVector < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVector < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVector < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVector_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * const < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVectorView < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVectorView < T > { type Vtable = IVectorView_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVectorView < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVectorView < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{bbe1fa4c-b0e3-4583-baef-1f1b2e483e56}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IUnknown { fn from ( value : IVectorView < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IUnknown { fn from ( value : & IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IInspectable { fn from ( value : IVectorView < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IInspectable { fn from ( value : & IVectorView < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVectorView < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVectorView < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVectorView < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVectorView < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVectorView_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Globalization { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage2 { type Vtable = ILanguage2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1783096757 ,55629 ,18566 , [ 164 ,4 ,165 ,165 ,185 ,213 ,180 ,148 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut LanguageLayoutDirection ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage3 { type Vtable = ILanguage3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3333373200 ,25626 ,23460 , [ 187 ,67 ,94 ,18 ,174 ,215 ,89 ,84 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageExtensionSubtags { type Vtable = ILanguageExtensionSubtags_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2105388869 ,13965 ,17252 , [ 133 ,43 ,222 ,201 ,39 ,3 ,123 ,133 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , singleton : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageFactory { type Vtable = ILanguageFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2600620716 ,3111 ,17656 , [ 183 ,146 ,151 ,147 ,251 ,102 ,198 ,62 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics { type Vtable = ILanguageStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2990331223 ,2149 ,18132 , [ 137 ,184 ,213 ,155 ,232 ,153 ,15 ,13 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics2 { type Vtable = ILanguageStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 806985582 ,37195 ,19242 , [ 157 ,110 ,227 ,176 ,226 ,125 ,190 ,79 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics3 { type Vtable = ILanguageStatics3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3512650586 ,29150 ,22354 , [ 149 ,66 ,250 ,197 ,180 ,242 ,114 ,97 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetags : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Language ( :: windows :: IInspectable ) ; impl Language { pub fn LanguageTag < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn NativeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Script < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetExtensionSubtags < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , singleton : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = & :: windows :: Interface :: cast :: < ILanguageExtensionSubtags > ( self ) ? ; unsafe { let mut result__ : < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , singleton . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn CreateLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < Language > { Self :: ILanguageFactory ( | this | unsafe { let mut result__ : < Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Language > ( result__ ) } ) } pub fn IsWellFormed < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn CurrentInputMethodLanguageTag < > ( ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn TrySetInputMethodLanguageTag < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn LayoutDirection < > ( & self , ) -> :: windows :: Result < LanguageLayoutDirection > { let this = & :: windows :: Interface :: cast :: < ILanguage2 > ( self ) ? ; unsafe { let mut result__ : < LanguageLayoutDirection as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < LanguageLayoutDirection > ( result__ ) } } pub fn AbbreviatedName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < ILanguage3 > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetMuiCompatibleLanguageListFromLanguageTags < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( languagetags : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > { Self :: ILanguageStatics3 ( | this | unsafe { let mut result__ : < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetags . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > ( result__ ) } ) } pub fn ILanguageFactory < R , F : FnOnce ( & ILanguageFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics < R , F : FnOnce ( & ILanguageStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics2 < R , F : FnOnce ( & ILanguageStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics3 < R , F : FnOnce ( & ILanguageStatics3 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics3 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Language { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Globalization.Language;{ea79a752-f7c2-4265-b1bd-c4dec4e4f080})" ) ; } unsafe impl :: windows :: Interface for Language { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } impl :: windows :: RuntimeName for Language { const NAME : & 'static str ="Windows.Globalization.Language" ; } impl < > :: std :: convert :: From < Language > for :: windows :: IUnknown { fn from ( value : Language ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Language > for :: windows :: IUnknown { fn from ( value : & Language ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Language > for :: windows :: IInspectable { fn from ( value : Language ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Language > for :: windows :: IInspectable { fn from ( value : & Language ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Language { } unsafe impl :: std :: marker :: Sync for Language { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct LanguageLayoutDirection ( pub i32 ) ; impl LanguageLayoutDirection { pub const Ltr : LanguageLayoutDirection = LanguageLayoutDirection ( 0i32 ) ; pub const Rtl : LanguageLayoutDirection = LanguageLayoutDirection ( 1i32 ) ; pub const TtbLtr : LanguageLayoutDirection = LanguageLayoutDirection ( 2i32 ) ; pub const TtbRtl : LanguageLayoutDirection = LanguageLayoutDirection ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for LanguageLayoutDirection { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for LanguageLayoutDirection { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for LanguageLayoutDirection { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Globalization.LanguageLayoutDirection;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Graphics { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod DirectX { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Direct3D11 { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IDirect3DSurface ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDirect3DSurface { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 200581446 ,5057 ,18068 , [ 190 ,227 ,122 ,191 ,21 ,234 ,245 ,134 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IDirect3DSurface { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{0bf4a146-13c1-4694-bee3-7abf15eaf586}" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Imaging { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapAlphaMode ( pub i32 ) ; impl BitmapAlphaMode { pub const Premultiplied : BitmapAlphaMode = BitmapAlphaMode ( 0i32 ) ; pub const Straight : BitmapAlphaMode = BitmapAlphaMode ( 1i32 ) ; pub const Ignore : BitmapAlphaMode = BitmapAlphaMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapAlphaMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapAlphaMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapAlphaMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapAlphaMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapBuffer ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapBuffer;{a53e04c4-399c-438c-b28f-a63a6b83d1a1})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapBufferAccessMode ( pub i32 ) ; impl BitmapBufferAccessMode { pub const Read : BitmapBufferAccessMode = BitmapBufferAccessMode ( 0i32 ) ; pub const ReadWrite : BitmapBufferAccessMode = BitmapBufferAccessMode ( 1i32 ) ; pub const Write : BitmapBufferAccessMode = BitmapBufferAccessMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapBufferAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapBufferAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapBufferAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapBufferAccessMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapCodecInformation ( :: windows :: IInspectable ) ; impl BitmapCodecInformation { pub fn CodecId < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn FileExtensions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn FriendlyName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn MimeTypes < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapCodecInformation { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapCodecInformation;{400caaf2-c4b0-4392-a3b0-6f6f9ba95cb4})" ) ; } unsafe impl :: windows :: Interface for BitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } impl :: windows :: RuntimeName for BitmapCodecInformation { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapCodecInformation" ; } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : BitmapCodecInformation ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : & BitmapCodecInformation ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : BitmapCodecInformation ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : & BitmapCodecInformation ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for BitmapCodecInformation { } unsafe impl :: std :: marker :: Sync for BitmapCodecInformation { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapDecoder ( :: windows :: IInspectable ) ; impl BitmapDecoder { pub fn BitmapContainerProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn DecoderInformation < > ( & self , ) -> :: windows :: Result < BitmapCodecInformation > { let this = self ; unsafe { let mut result__ : < BitmapCodecInformation as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapCodecInformation > ( result__ ) } } pub fn FrameCount < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPreviewAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn GetFrameAsync < > ( & self , frameindex : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , frameindex , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn BmpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn PngDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn TiffDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegXRDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IcoDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GetDecoderInformationEnumerator < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > ( result__ ) } ) } pub fn CreateAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( stream : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn CreateWithIdAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: Guid > , Param1 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( decoderid : Param0 , stream : Param1 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , decoderid . into_param ( ) . abi ( ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn HeifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn WebpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IBitmapDecoderStatics < R , F : FnOnce ( & IBitmapDecoderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IBitmapDecoderStatics2 < R , F : FnOnce ( & IBitmapDecoderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for BitmapDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapDecoder;{acef22ba-1d74-4c91-9dfc-9620745233e6})" ) ; } unsafe impl :: windows :: Interface for BitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } impl :: windows :: RuntimeName for BitmapDecoder { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapDecoder" ; } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IUnknown { fn from ( value : BitmapDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IUnknown { fn from ( value : & BitmapDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IInspectable { fn from ( value : BitmapDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IInspectable { fn from ( value : & BitmapDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapDecoder { } unsafe impl :: std :: marker :: Sync for BitmapDecoder { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapFrame ( :: windows :: IInspectable ) ; impl BitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapFrame;{72a49a1c-8081-438d-91bc-94ecfc8185c6})" ) ; } unsafe impl :: windows :: Interface for BitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl :: windows :: RuntimeName for BitmapFrame { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapFrame" ; } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IUnknown { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IUnknown { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IInspectable { fn from ( value : BitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IInspectable { fn from ( value : & BitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < BitmapFrame > for IBitmapFrame { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for IBitmapFrame { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapFrame ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapFrame ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapFrame { } unsafe impl :: std :: marker :: Sync for BitmapFrame { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapPixelFormat ( pub i32 ) ; impl BitmapPixelFormat { pub const Unknown : BitmapPixelFormat = BitmapPixelFormat ( 0i32 ) ; pub const Rgba16 : BitmapPixelFormat = BitmapPixelFormat ( 12i32 ) ; pub const Rgba8 : BitmapPixelFormat = BitmapPixelFormat ( 30i32 ) ; pub const Gray16 : BitmapPixelFormat = BitmapPixelFormat ( 57i32 ) ; pub const Gray8 : BitmapPixelFormat = BitmapPixelFormat ( 62i32 ) ; pub const Bgra8 : BitmapPixelFormat = BitmapPixelFormat ( 87i32 ) ; pub const Nv12 : BitmapPixelFormat = BitmapPixelFormat ( 103i32 ) ; pub const P010 : BitmapPixelFormat = BitmapPixelFormat ( 104i32 ) ; pub const Yuy2 : BitmapPixelFormat = BitmapPixelFormat ( 107i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapPixelFormat { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapPixelFormat { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapPixelFormat { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapPixelFormat;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapPropertiesView ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapPropertiesView;{7e0fe87a-3a70-48f8-9c55-196cf5a545f5})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapTransform ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapTransform;{ae755344-e268-4d35-adcf-e995d31a8d34})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ColorManagementMode ( pub i32 ) ; impl ColorManagementMode { pub const DoNotColorManage : ColorManagementMode = ColorManagementMode ( 0i32 ) ; pub const ColorManageToSRgb : ColorManagementMode = ColorManagementMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ColorManagementMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ColorManagementMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ColorManagementMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ColorManagementMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ExifOrientationMode ( pub i32 ) ; impl ExifOrientationMode { pub const IgnoreExifOrientation : ExifOrientationMode = ExifOrientationMode ( 0i32 ) ; pub const RespectExifOrientation : ExifOrientationMode = ExifOrientationMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ExifOrientationMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ExifOrientationMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ExifOrientationMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ExifOrientationMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{a53e04c4-399c-438c-b28f-a63a6b83d1a1}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , frameindex : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics { type Vtable = IBitmapDecoderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133300518 ,48367 ,20117 , [ 186 ,214 ,35 ,168 ,34 ,229 ,141 ,1 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , decoderid : :: windows :: Guid , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics2 { type Vtable = IBitmapDecoderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1354393834 ,39329 ,16580 , [ 128 ,217 ,174 ,240 ,218 ,250 ,108 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrame ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl < > IBitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72a49a1c-8081-438d-91bc-94ecfc8185c6}" ) ; } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IUnknown { fn from ( value : IBitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IUnknown { fn from ( value : & IBitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IInspectable { fn from ( value : IBitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IInspectable { fn from ( value : & IBitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrame_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrameWithSoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrameWithSoftwareBitmap { type Vtable = IBitmapFrameWithSoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4264066202 ,16908 ,18787 , [ 135 ,173 ,105 ,20 ,54 ,224 ,131 ,131 ] , ) ; } impl < > IBitmapFrameWithSoftwareBitmap { pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrameWithSoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fe287c9a-420c-4963-87ad-691436e08383}" ) ; } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrameWithSoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapPropertiesView ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{7e0fe87a-3a70-48f8-9c55-196cf5a545f5}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapTransform ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{ae755344-e268-4d35-adcf-e995d31a8d34}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result_size__ : * mut u32 , result__ : * mut * mut u8 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : BitmapBufferAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapFactory { type Vtable = ISoftwareBitmapFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382700905 ,11618 ,19783 , [ 166 ,179 ,79 ,219 ,106 ,7 ,253 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapStatics { type Vtable = ISoftwareBitmapStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3741550043 ,26415 ,19101 , [ 128 ,110 ,194 ,68 ,47 ,52 ,62 ,134 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct ImageStream ( :: windows :: IInspectable ) ; impl ImageStream { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::super::Storage::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::super::Storage::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for ImageStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.ImageStream;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for ImageStream { type Vtable = super::super::Storage::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for ImageStream { const NAME : & 'static str ="Windows.Graphics.Imaging.ImageStream" ; } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IUnknown { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IUnknown { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IInspectable { fn from ( value : ImageStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IInspectable { fn from ( value : & ImageStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for ImageStream { } unsafe impl :: std :: marker :: Sync for ImageStream { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PixelDataProvider ( :: windows :: IInspectable ) ; impl PixelDataProvider { pub fn DetachPixelData < > ( & self , ) -> :: windows :: Result < :: windows :: Array < u8 > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < u8 > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , :: windows :: Array :: < u8 > :: set_abi_len ( & mut result__ ) , & mut result__ as * mut _ as _ ) . and_then ( || result__ ) } } } unsafe impl :: windows :: RuntimeType for PixelDataProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.PixelDataProvider;{dd831f25-185c-4595-9fb9-ccbe6ec18a6f})" ) ; } unsafe impl :: windows :: Interface for PixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } impl :: windows :: RuntimeName for PixelDataProvider { const NAME : & 'static str ="Windows.Graphics.Imaging.PixelDataProvider" ; } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IUnknown { fn from ( value : PixelDataProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IUnknown { fn from ( value : & PixelDataProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IInspectable { fn from ( value : PixelDataProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IInspectable { fn from ( value : & PixelDataProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PixelDataProvider { } unsafe impl :: std :: marker :: Sync for PixelDataProvider { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct SoftwareBitmap ( :: windows :: IInspectable ) ; impl SoftwareBitmap { pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn IsReadOnly < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetDpiX < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetDpiY < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn LockBuffer < > ( & self , mode : BitmapBufferAccessMode , ) -> :: windows :: Result < BitmapBuffer > { let this = self ; unsafe { let mut result__ : < BitmapBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < BitmapBuffer > ( result__ ) } } pub fn CopyTo < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyToBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetReadOnlyView < > ( & self , ) -> :: windows :: Result < SoftwareBitmap > { let this = self ; unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Create < > ( format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateWithAlpha < > ( format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Copy < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Convert < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn ConvertWithAlpha < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , alpha , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn ISoftwareBitmapFactory < R , F : FnOnce ( & ISoftwareBitmapFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ISoftwareBitmapStatics < R , F : FnOnce ( & ISoftwareBitmapStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for SoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.SoftwareBitmap;{689e0708-7eef-483f-963f-da938818e073})" ) ; } unsafe impl :: windows :: Interface for SoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } impl :: windows :: RuntimeName for SoftwareBitmap { const NAME : & 'static str ="Windows.Graphics.Imaging.SoftwareBitmap" ; } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : SoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & SoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : SoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & SoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : SoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & SoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for SoftwareBitmap { } unsafe impl :: std :: marker :: Sync for SoftwareBitmap { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Media { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Ocr { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngineStatics { type Vtable = IOcrEngineStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1543481434 ,13188 ,13632 , [ 153 ,64 ,105 ,145 ,32 ,212 ,40 ,168 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrLine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrLine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrResult_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrWord ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrWord_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrEngine ( :: windows :: IInspectable ) ; impl OcrEngine { pub fn RecognizeAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Graphics::Imaging:: SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < OcrResult > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < OcrResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < OcrResult > > ( result__ ) } } pub fn RecognizerLanguage < > ( & self , ) -> :: windows :: Result < super::super::Globalization:: Language > { let this = self ; unsafe { let mut result__ : < super::super::Globalization:: Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Globalization:: Language > ( result__ ) } } pub fn MaxImageDimension < > ( ) -> :: windows :: Result < u32 > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } ) } pub fn AvailableRecognizerLanguages < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > ( result__ ) } ) } pub fn IsLanguageSupported < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < bool > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn TryCreateFromLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn TryCreateFromUserProfileLanguages < > ( ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn IOcrEngineStatics < R , F : FnOnce ( & IOcrEngineStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < OcrEngine , IOcrEngineStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for OcrEngine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrEngine;{5a14bc41-5b76-3140-b680-8825562683ac})" ) ; } unsafe impl :: windows :: Interface for OcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } impl :: windows :: RuntimeName for OcrEngine { const NAME : & 'static str ="Windows.Media.Ocr.OcrEngine" ; } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IUnknown { fn from ( value : OcrEngine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IUnknown { fn from ( value : & OcrEngine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IInspectable { fn from ( value : OcrEngine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IInspectable { fn from ( value : & OcrEngine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrEngine { } unsafe impl :: std :: marker :: Sync for OcrEngine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrLine ( :: windows :: IInspectable ) ; impl OcrLine { pub fn Words < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrWord > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrLine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrLine;{0043a16f-e31f-3a24-899c-d444bd088124})" ) ; } unsafe impl :: windows :: Interface for OcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } impl :: windows :: RuntimeName for OcrLine { const NAME : & 'static str ="Windows.Media.Ocr.OcrLine" ; } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IUnknown { fn from ( value : OcrLine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IUnknown { fn from ( value : & OcrLine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IInspectable { fn from ( value : OcrLine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IInspectable { fn from ( value : & OcrLine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrLine { } unsafe impl :: std :: marker :: Sync for OcrLine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrResult ( :: windows :: IInspectable ) ; impl OcrResult { pub fn Lines < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrLine > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > ( result__ ) } } pub fn TextAngle < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < f64 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < f64 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrResult;{9bd235b2-175b-3d6a-92e2-388c206e2f63})" ) ; } unsafe impl :: windows :: Interface for OcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } impl :: windows :: RuntimeName for OcrResult { const NAME : & 'static str ="Windows.Media.Ocr.OcrResult" ; } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IUnknown { fn from ( value : OcrResult ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IUnknown { fn from ( value : & OcrResult ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IInspectable { fn from ( value : OcrResult ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IInspectable { fn from ( value : & OcrResult ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrResult { } unsafe impl :: std :: marker :: Sync for OcrResult { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrWord ( :: windows :: IInspectable ) ; impl OcrWord { pub fn BoundingRect < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: Rect > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: Rect > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrWord { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrWord;{3c2a477a-5cd9-3525-ba2a-23d1e0a68a1d})" ) ; } unsafe impl :: windows :: Interface for OcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } impl :: windows :: RuntimeName for OcrWord { const NAME : & 'static str ="Windows.Media.Ocr.OcrWord" ; } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IUnknown { fn from ( value : OcrWord ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IUnknown { fn from ( value : & OcrWord ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IInspectable { fn from ( value : OcrWord ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IInspectable { fn from ( value : & OcrWord ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrWord { } unsafe impl :: std :: marker :: Sync for OcrWord { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CreationCollisionOption ( pub i32 ) ; impl CreationCollisionOption { pub const GenerateUniqueName : CreationCollisionOption = CreationCollisionOption ( 0i32 ) ; pub const ReplaceExisting : CreationCollisionOption = CreationCollisionOption ( 1i32 ) ; pub const FailIfExists : CreationCollisionOption = CreationCollisionOption ( 2i32 ) ; pub const OpenIfExists : CreationCollisionOption = CreationCollisionOption ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for CreationCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CreationCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CreationCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.CreationCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAccessMode ( pub i32 ) ; impl FileAccessMode { pub const Read : FileAccessMode = FileAccessMode ( 0i32 ) ; pub const ReadWrite : FileAccessMode = FileAccessMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for FileAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAccessMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAttributes ( pub u32 ) ; impl FileAttributes { pub const Normal : FileAttributes = FileAttributes ( 0u32 ) ; pub const ReadOnly : FileAttributes = FileAttributes ( 1u32 ) ; pub const Directory : FileAttributes = FileAttributes ( 16u32 ) ; pub const Archive : FileAttributes = FileAttributes ( 32u32 ) ; pub const Temporary : FileAttributes = FileAttributes ( 256u32 ) ; pub const LocallyIncomplete : FileAttributes = FileAttributes ( 512u32 ) ; } impl :: std :: convert :: From < u32 > for FileAttributes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAttributes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAttributes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAttributes;u4)" ) ; } impl :: std :: ops :: BitOr for FileAttributes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for FileAttributes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for FileAttributes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for FileAttributes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for FileAttributes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl < > IStorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fa3f6186-4214-428c-a64c-14c9ac7315ea}" ) ; } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IUnknown { fn from ( value : IStorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IUnknown { fn from ( value : & IStorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IInspectable { fn from ( value : IStorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IInspectable { fn from ( value : & IStorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile2 { type Vtable = IStorageFile2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2504936399 ,2679 ,17147 , [ 183 ,119 ,194 ,237 ,88 ,165 ,46 ,68 ] , ) ; } impl < > IStorageFile2 { pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{954e4bcf-0a77-42fb-b777-c2ed58a52e44}" ) ; } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IUnknown { fn from ( value : IStorageFile2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IUnknown { fn from ( value : & IStorageFile2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IInspectable { fn from ( value : IStorageFile2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IInspectable { fn from ( value : & IStorageFile2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFilePropertiesWithAvailability ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFilePropertiesWithAvailability { type Vtable = IStorageFilePropertiesWithAvailability_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2949365403 ,22571 ,16691 , [ 150 ,72 ,228 ,76 ,164 ,110 ,228 ,145 ] , ) ; } impl < > IStorageFilePropertiesWithAvailability { pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFilePropertiesWithAvailability { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{afcbbe9b-582b-4133-9648-e44ca46ee491}" ) ; } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFilePropertiesWithAvailability_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics { type Vtable = IStorageFileStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1501873936 ,56050 ,17352 , [ 139 ,180 ,164 ,211 ,234 ,207 ,208 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics2 { type Vtable = IStorageFileStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1551280001 ,8494 ,19193 , [ 143 ,4 ,116 ,12 ,174 ,16 ,137 ,116 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl < > IStorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b}" ) ; } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IUnknown { fn from ( value : IStorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IUnknown { fn from ( value : & IStorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IInspectable { fn from ( value : IStorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IInspectable { fn from ( value : & IStorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder2 { type Vtable = IStorageFolder2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3894929593 ,2265 ,19086 , [ 160 ,172 ,254 ,94 ,211 ,203 ,187 ,211 ] , ) ; } impl < > IStorageFolder2 { pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e827e8b9-08d9-4a8e-a0ac-fe5ed3cbbbd3}" ) ; } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : IStorageFolder2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : & IStorageFolder2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : IStorageFolder2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : & IStorageFolder2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder3 { type Vtable = IStorageFolder3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2673965209 ,48609 ,16676 , [ 174 ,179 ,176 ,106 ,217 ,111 ,152 ,212 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics { type Vtable = IStorageFolderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 150153215 ,34261 ,18617 , [ 174 ,233 ,40 ,81 ,30 ,51 ,159 ,159 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics2 { type Vtable = IStorageFolderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3026546115 ,29138 ,18045 , [ 139 ,41 ,55 ,31 ,15 ,98 ,191 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem { type Vtable = IStorageItem_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1107798422 ,51759 ,17143 , [ 189 ,232 ,139 ,16 ,69 ,122 ,127 ,48 ] , ) ; } impl < > IStorageItem { pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = self ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4207a996-ca2f-42f7-bde8-8b10457a7f30}" ) ; } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IUnknown { fn from ( value : IStorageItem ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IUnknown { fn from ( value : & IStorageItem ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IInspectable { fn from ( value : IStorageItem ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IInspectable { fn from ( value : & IStorageItem ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , option : StorageDeleteOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut FileAttributes ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , r#type : StorageItemTypes , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem2 { type Vtable = IStorageItem2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1408837330 ,2108 ,17027 , [ 180 ,91 ,129 ,192 ,7 ,35 ,126 ,68 ] , ) ; } impl < > IStorageItem2 { pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{53f926d2-083c-4283-b45b-81c007237e44}" ) ; } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IUnknown { fn from ( value : IStorageItem2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IUnknown { fn from ( value : & IStorageItem2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IInspectable { fn from ( value : IStorageItem2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IInspectable { fn from ( value : & IStorageItem2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageItem2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItem2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , item : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties { type Vtable = IStorageItemProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2254849144 ,32809 ,18174 , [ 167 ,137 ,28 ,47 ,62 ,47 ,251 ,92 ] , ) ; } impl < > IStorageItemProperties { pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = self ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{86664478-8029-46fe-a789-1c2f3e2ffb5c}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties2 { type Vtable = IStorageItemProperties2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2391189841 ,1209 ,19410 , [ 146 ,157 ,254 ,243 ,247 ,22 ,33 ,208 ] , ) ; } impl < > IStorageItemProperties2 { pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{8e86a951-04b9-4bd2-929d-fef3f71621d0}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemPropertiesWithProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemPropertiesWithProvider { type Vtable = IStorageItemPropertiesWithProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2249978779 ,25448 ,19950 , [ 180 ,14 ,116 ,104 ,74 ,92 ,231 ,20 ] , ) ; } impl < > IStorageItemPropertiesWithProvider { pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = self ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemPropertiesWithProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{861bf39b-6368-4dee-b40e-74684a5ce714}" ) ; } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemPropertiesWithProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageLibraryChangeTracker ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{9e157316-6073-44f6-9681-7492d1286c90}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e705eed4-d478-47d6-ba46-1a8ebe114a20}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct NameCollisionOption ( pub i32 ) ; impl NameCollisionOption { pub const GenerateUniqueName : NameCollisionOption = NameCollisionOption ( 0i32 ) ; pub const ReplaceExisting : NameCollisionOption = NameCollisionOption ( 1i32 ) ; pub const FailIfExists : NameCollisionOption = NameCollisionOption ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for NameCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for NameCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for NameCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.NameCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageDeleteOption ( pub i32 ) ; impl StorageDeleteOption { pub const Default : StorageDeleteOption = StorageDeleteOption ( 0i32 ) ; pub const PermanentDelete : StorageDeleteOption = StorageDeleteOption ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for StorageDeleteOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageDeleteOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageDeleteOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageDeleteOption;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFile ( :: windows :: IInspectable ) ; impl StorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageFilePropertiesWithAvailability > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } pub fn GetFileFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromApplicationUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , > ( uri : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn IStorageFileStatics < R , F : FnOnce ( & IStorageFileStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFileStatics2 < R , F : FnOnce ( & IStorageFileStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFile;{fa3f6186-4214-428c-a64c-14c9ac7315ea})" ) ; } unsafe impl :: windows :: Interface for StorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl :: windows :: RuntimeName for StorageFile { const NAME : & 'static str ="Windows.Storage.StorageFile" ; } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IUnknown { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IUnknown { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IInspectable { fn from ( value : StorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IInspectable { fn from ( value : & StorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFile > for IStorageFile { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for IStorageFile { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: std :: convert :: TryInto :: < IStorageFile2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: std :: convert :: TryInto :: < IStorageFilePropertiesWithAvailability > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFolder ( :: windows :: IInspectable ) ; impl StorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = & :: windows :: Interface :: cast :: < IStorageFolder2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : Search:: CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : Search:: CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetFolderFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn TryGetChangeTracker < > ( & self , ) -> :: windows :: Result < StorageLibraryChangeTracker > { let this = & :: windows :: Interface :: cast :: < IStorageFolder3 > ( self ) ? ; unsafe { let mut result__ : < StorageLibraryChangeTracker as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageLibraryChangeTracker > ( result__ ) } } pub fn GetFolderFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn IStorageFolderStatics < R , F : FnOnce ( & IStorageFolderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFolderStatics2 < R , F : FnOnce ( & IStorageFolderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFolder;{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b})" ) ; } unsafe impl :: windows :: Interface for StorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl :: windows :: RuntimeName for StorageFolder { const NAME : & 'static str ="Windows.Storage.StorageFolder" ; } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IUnknown { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IUnknown { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IInspectable { fn from ( value : StorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IInspectable { fn from ( value : & StorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFolder > for IStorageFolder { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for IStorageFolder { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: std :: convert :: TryInto :: < IStorageFolder2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: std :: convert :: TryInto :: < Search:: IStorageFolderQueryOperations > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageItemTypes ( pub u32 ) ; impl StorageItemTypes { pub const None : StorageItemTypes = StorageItemTypes ( 0u32 ) ; pub const File : StorageItemTypes = StorageItemTypes ( 1u32 ) ; pub const Folder : StorageItemTypes = StorageItemTypes ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageItemTypes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageItemTypes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageItemTypes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageItemTypes;u4)" ) ; } impl :: std :: ops :: BitOr for StorageItemTypes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageItemTypes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageItemTypes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageItemTypes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageItemTypes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageLibraryChangeTracker ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageLibraryChangeTracker;{9e157316-6073-44f6-9681-7492d1286c90})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageOpenOptions ( pub u32 ) ; impl StorageOpenOptions { pub const None : StorageOpenOptions = StorageOpenOptions ( 0u32 ) ; pub const AllowOnlyReaders : StorageOpenOptions = StorageOpenOptions ( 1u32 ) ; pub const AllowReadersAndWriters : StorageOpenOptions = StorageOpenOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageOpenOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageOpenOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageOpenOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageOpenOptions;u4)" ) ; } impl :: std :: ops :: BitOr for StorageOpenOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageOpenOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageOpenOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageOpenOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageOpenOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageProvider ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageProvider;{e705eed4-d478-47d6-ba46-1a8ebe114a20})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageStreamTransaction ( :: windows :: IInspectable ) ; impl StorageStreamTransaction { pub fn Stream < > ( & self , ) -> :: windows :: Result < Streams:: IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Streams:: IRandomAccessStream > ( result__ ) } } pub fn CommitAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl :: windows :: RuntimeType for StorageStreamTransaction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageStreamTransaction;{f67cf363-a53d-4d94-ae2c-67232d93acdd})" ) ; } unsafe impl :: windows :: Interface for StorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } impl :: windows :: RuntimeName for StorageStreamTransaction { const NAME : & 'static str ="Windows.Storage.StorageStreamTransaction" ; } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : StorageStreamTransaction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : & StorageStreamTransaction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : StorageStreamTransaction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : & StorageStreamTransaction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageStreamTransaction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageStreamTransaction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequest ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StreamedFileDataRequest { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } unsafe impl :: windows :: RuntimeType for StreamedFileDataRequest { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StreamedFileDataRequest;{905a0fe6-bc53-11df-8c49-001e4fc686da})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StreamedFileDataRequestedHandler ( :: windows :: IUnknown , ) where ; impl < > StreamedFileDataRequestedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = StreamedFileDataRequestedHandler_box :: < F > { vtable : & StreamedFileDataRequestedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , StreamedFileDataRequest > , > ( & self , stream : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for StreamedFileDataRequestedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({fef6a824-2fe1-4d07-a35b-b77c50b5f4cc})" ) ; } unsafe impl < > :: windows :: Interface for StreamedFileDataRequestedHandler { type Vtable = StreamedFileDataRequestedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4277577764 ,12257 ,19719 , [ 163 ,91 ,183 ,124 ,80 ,181 ,244 ,204 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequestedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct StreamedFileDataRequestedHandler_box < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const StreamedFileDataRequestedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > StreamedFileDataRequestedHandler_box :: < F > { const VTABLE : StreamedFileDataRequestedHandler_abi = StreamedFileDataRequestedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < StreamedFileDataRequestedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & stream as * const < StreamedFileDataRequest as :: windows :: Abi > :: Abi as * const < StreamedFileDataRequest as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileProperties { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BasicProperties ( :: windows :: IInspectable ) ; impl BasicProperties { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn DateModified < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn ItemDate < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BasicProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.BasicProperties;{d05d55db-785e-4a66-be02-9beec58aea81})" ) ; } unsafe impl :: windows :: Interface for BasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } impl :: windows :: RuntimeName for BasicProperties { const NAME : & 'static str ="Windows.Storage.FileProperties.BasicProperties" ; } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IUnknown { fn from ( value : BasicProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IUnknown { fn from ( value : & BasicProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IInspectable { fn from ( value : BasicProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IInspectable { fn from ( value : & BasicProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : BasicProperties ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : & BasicProperties ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: std :: convert :: TryInto :: < IStorageItemExtraProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBasicProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBasicProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemContentProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{05294bad-bc38-48bf-85d7-770e0e2ae0ba}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemExtraProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemExtraProperties { type Vtable = IStorageItemExtraProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3309527474 ,21709 ,17195 , [ 189 ,188 ,75 ,25 ,196 ,180 ,112 ,215 ] , ) ; } impl < > IStorageItemExtraProperties { pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemExtraProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c54361b2-54cd-432b-bdbc-4b19c4b470d7}" ) ; } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemExtraProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemExtraProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemExtraProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemExtraProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemExtraProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestoretrieve : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestosave : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IThumbnailProperties { type Vtable = IThumbnailProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1765659695 ,56295 ,18869 , [ 179 ,179 ,40 ,147 ,172 ,93 ,52 ,35 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut ThumbnailType ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemContentProperties ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemContentProperties;{05294bad-bc38-48bf-85d7-770e0e2ae0ba})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageItemThumbnail ( :: windows :: IInspectable ) ; impl StorageItemThumbnail { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn OriginalWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OriginalHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReturnedSmallerCachedSize < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < ThumbnailType > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < ThumbnailType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < ThumbnailType > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StorageItemThumbnail { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemThumbnail;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for StorageItemThumbnail { type Vtable = super::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for StorageItemThumbnail { const NAME : & 'static str ="Windows.Storage.FileProperties.StorageItemThumbnail" ; } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : StorageItemThumbnail ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : & StorageItemThumbnail ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailMode ( pub i32 ) ; impl ThumbnailMode { pub const PicturesView : ThumbnailMode = ThumbnailMode ( 0i32 ) ; pub const VideosView : ThumbnailMode = ThumbnailMode ( 1i32 ) ; pub const MusicView : ThumbnailMode = ThumbnailMode ( 2i32 ) ; pub const DocumentsView : ThumbnailMode = ThumbnailMode ( 3i32 ) ; pub const ListView : ThumbnailMode = ThumbnailMode ( 4i32 ) ; pub const SingleItem : ThumbnailMode = ThumbnailMode ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailOptions ( pub u32 ) ; impl ThumbnailOptions { pub const None : ThumbnailOptions = ThumbnailOptions ( 0u32 ) ; pub const ReturnOnlyIfCached : ThumbnailOptions = ThumbnailOptions ( 1u32 ) ; pub const ResizeThumbnail : ThumbnailOptions = ThumbnailOptions ( 2u32 ) ; pub const UseCurrentScale : ThumbnailOptions = ThumbnailOptions ( 4u32 ) ; } impl :: std :: convert :: From < u32 > for ThumbnailOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailOptions;u4)" ) ; } impl :: std :: ops :: BitOr for ThumbnailOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for ThumbnailOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for ThumbnailOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for ThumbnailOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for ThumbnailOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailType ( pub i32 ) ; impl ThumbnailType { pub const Image : ThumbnailType = ThumbnailType ( 0i32 ) ; pub const Icon : ThumbnailType = ThumbnailType ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailType;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Search { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFileQuery ( pub i32 ) ; impl CommonFileQuery { pub const DefaultQuery : CommonFileQuery = CommonFileQuery ( 0i32 ) ; pub const OrderByName : CommonFileQuery = CommonFileQuery ( 1i32 ) ; pub const OrderByTitle : CommonFileQuery = CommonFileQuery ( 2i32 ) ; pub const OrderByMusicProperties : CommonFileQuery = CommonFileQuery ( 3i32 ) ; pub const OrderBySearchRank : CommonFileQuery = CommonFileQuery ( 4i32 ) ; pub const OrderByDate : CommonFileQuery = CommonFileQuery ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFileQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFileQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFileQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFileQuery;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFolderQuery ( pub i32 ) ; impl CommonFolderQuery { pub const DefaultQuery : CommonFolderQuery = CommonFolderQuery ( 0i32 ) ; pub const GroupByYear : CommonFolderQuery = CommonFolderQuery ( 100i32 ) ; pub const GroupByMonth : CommonFolderQuery = CommonFolderQuery ( 101i32 ) ; pub const GroupByArtist : CommonFolderQuery = CommonFolderQuery ( 102i32 ) ; pub const GroupByAlbum : CommonFolderQuery = CommonFolderQuery ( 103i32 ) ; pub const GroupByAlbumArtist : CommonFolderQuery = CommonFolderQuery ( 104i32 ) ; pub const GroupByComposer : CommonFolderQuery = CommonFolderQuery ( 105i32 ) ; pub const GroupByGenre : CommonFolderQuery = CommonFolderQuery ( 106i32 ) ; pub const GroupByPublishedYear : CommonFolderQuery = CommonFolderQuery ( 107i32 ) ; pub const GroupByRating : CommonFolderQuery = CommonFolderQuery ( 108i32 ) ; pub const GroupByTag : CommonFolderQuery = CommonFolderQuery ( 109i32 ) ; pub const GroupByAuthor : CommonFolderQuery = CommonFolderQuery ( 110i32 ) ; pub const GroupByType : CommonFolderQuery = CommonFolderQuery ( 111i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFolderQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFolderQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFolderQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFolderQuery;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IQueryOptions ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IQueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IQueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{1e5e46ee-0f45-4838-a8e9-d0479d446c30}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{52fda447-2baa-412c-b29f-d4b1778efa1e}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolderQueryOperations ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryOperations { type Vtable = IStorageFolderQueryOperations_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3410218185 ,17515 ,19023 , [ 190 ,151 ,117 ,119 ,113 ,190 ,82 ,3 ] , ) ; } impl < > IStorageFolderQueryOperations { pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IndexedState > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryOperations { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cb43ccc9-446b-4a4f-be97-757771be5203}" ) ; } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : IStorageFolderQueryOperations ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : & IStorageFolderQueryOperations ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : IStorageFolderQueryOperations ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : & IStorageFolderQueryOperations ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryOperations_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{6654c911-7d66-46fa-aecf-e4a4baa93ab8}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e8948079-9d58-47b8-b2b2-41b07f4795f9}" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct IndexedState ( pub i32 ) ; impl IndexedState { pub const Unknown : IndexedState = IndexedState ( 0i32 ) ; pub const NotIndexed : IndexedState = IndexedState ( 1i32 ) ; pub const PartiallyIndexed : IndexedState = IndexedState ( 2i32 ) ; pub const FullyIndexed : IndexedState = IndexedState ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for IndexedState { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for IndexedState { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for IndexedState { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.IndexedState;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct QueryOptions ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for QueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl :: windows :: RuntimeType for QueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.QueryOptions;{1e5e46ee-0f45-4838-a8e9-d0479d446c30})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFileQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFileQueryResult;{52fda447-2baa-412c-b29f-d4b1778efa1e})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFolderQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFolderQueryResult;{6654c911-7d66-46fa-aecf-e4a4baa93ab8})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageItemQueryResult;{e8948079-9d58-47b8-b2b2-41b07f4795f9})" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Streams { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBuffer { type Vtable = IBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821408 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IBuffer { pub fn Capacity < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Length < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetLength < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe0-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IUnknown { fn from ( value : IBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IUnknown { fn from ( value : & IBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IInspectable { fn from ( value : IBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IInspectable { fn from ( value : & IBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IContentTypeProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IContentTypeProvider { type Vtable = IContentTypeProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2547030181 ,15257 ,19945 , [ 136 ,165 ,225 ,29 ,47 ,80 ,199 ,149 ] , ) ; } impl < > IContentTypeProvider { pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IContentTypeProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{97d098a5-3b99-4de9-88a5-e11d2f50c795}" ) ; } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : IContentTypeProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : & IContentTypeProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : IContentTypeProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : & IContentTypeProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IContentTypeProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStream { type Vtable = IInputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821410 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IInputStream { pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe2-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IUnknown { fn from ( value : IInputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IUnknown { fn from ( value : & IInputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IInspectable { fn from ( value : IInputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IInspectable { fn from ( value : & IInputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IInputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IInputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , count : u32 , options : InputStreamOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStreamReference { type Vtable = IInputStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133681944 ,24265 ,19290 , [ 145 ,156 ,66 ,5 ,176 ,200 ,4 ,182 ] , ) ; } impl < > IInputStreamReference { pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IInputStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IInputStream > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{43929d18-5ec9-4b5a-919c-4205b0c804b6}" ) ; } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IUnknown { fn from ( value : IInputStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IUnknown { fn from ( value : & IInputStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IInspectable { fn from ( value : IInputStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IInspectable { fn from ( value : & IInputStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IOutputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOutputStream { type Vtable = IOutputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IOutputStream { pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IOutputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe6-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IUnknown { fn from ( value : IOutputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IUnknown { fn from ( value : & IOutputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IInspectable { fn from ( value : IOutputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IInspectable { fn from ( value : & IOutputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IOutputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IOutputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOutputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStream { type Vtable = IRandomAccessStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821409 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IRandomAccessStream { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = self ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = self ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe1-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : IRandomAccessStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : IRandomAccessStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamReference { type Vtable = IRandomAccessStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 871248180 ,7638 ,20026 , [ 128 ,103 ,209 ,193 ,98 ,232 ,100 ,43 ] , ) ; } impl < > IRandomAccessStreamReference { pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{33ee3134-1dd6-4e3a-8067-d1c162e8642b}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamWithContentType ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamWithContentType { type Vtable = IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl < > IRandomAccessStreamWithContentType { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamWithContentType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cc254827-4b3d-438f-9232-10c76bc7e038}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: std :: convert :: TryInto :: < IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: std :: convert :: TryInto :: < IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamWithContentType_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct InputStreamOptions ( pub u32 ) ; impl InputStreamOptions { pub const None : InputStreamOptions = InputStreamOptions ( 0u32 ) ; pub const Partial : InputStreamOptions = InputStreamOptions ( 1u32 ) ; pub const ReadAhead : InputStreamOptions = InputStreamOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for InputStreamOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for InputStreamOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for InputStreamOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Streams.InputStreamOptions;u4)" ) ; } impl :: std :: ops :: BitOr for InputStreamOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for InputStreamOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for InputStreamOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for InputStreamOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for InputStreamOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUser ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUser { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IUser { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{df9a26c6-e746-4bcd-b5d4-120103c4209b}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct User ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for User { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl :: windows :: RuntimeType for User { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.System.User;{df9a26c6-e746-4bcd-b5d4-120103c4209b})" ) ; } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/win_ocr_bindings-6e1ac750950c780f/out/windows.rs:1:21996 [INFO] [stdout] | [INFO] [stdout] 1 | ...( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( thi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > AsyncActionCompletedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionCompletedHandler_box :: < F > { vtable : & AsyncActionCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncAction > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7})" ) ; } unsafe impl < > :: windows :: Interface for AsyncActionCompletedHandler { type Vtable = AsyncActionCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2767019137 ,30409 ,16573 , [ 139 ,230 ,177 ,217 ,15 ,178 ,10 ,231 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct AsyncActionCompletedHandler_box < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const AsyncActionCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < IAsyncAction > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionCompletedHandler_box :: < F > { const VTABLE : AsyncActionCompletedHandler_abi = AsyncActionCompletedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncActionCompletedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncAction as :: windows :: Abi > :: Abi as * const < IAsyncAction as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationCompletedHandler < TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , > AsyncOperationCompletedHandler < TResult > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationCompletedHandler_box :: < TResult , F > { vtable : & AsyncOperationCompletedHandler_box :: < TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{fcdcf02c-e5d8-4478-915a-4d90b74b83a5}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationCompletedHandler < TResult > { type Vtable = AsyncOperationCompletedHandler_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationCompletedHandler < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationCompletedHandler_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationCompletedHandler_box < TResult , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationCompletedHandler_abi < TResult > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperation < TResult > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationCompletedHandler_box :: < TResult , F > { const VTABLE : AsyncOperationCompletedHandler_abi < TResult > = AsyncOperationCompletedHandler_abi :: < TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationCompletedHandler < TResult > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: Abi as * const < IAsyncOperation < TResult > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationProgressHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationProgressHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationProgressHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , Param1 : :: windows :: IntoParam < 'a , TProgress > , > ( & self , asyncinfo : Param0 , progressinfo : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationProgressHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{55690902-0aab-421a-8778-f8ce5026d758}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationProgressHandler < TResult , TProgress > { type Vtable = AsyncOperationProgressHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationProgressHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationProgressHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationProgressHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , & < TProgress as :: windows :: Abi > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationProgressHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationProgressHandler_abi < TResult , TProgress > = AsyncOperationProgressHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , progressinfo : < TProgress as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncOperationWithProgressCompletedHandler < TResult , TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { vtable : & AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , > ( & self , asyncinfo : Param0 , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e85df41d-6aa7-46e3-a8e2-f009d840c627}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type Vtable = AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncOperationWithProgressCompletedHandler_box < TResult , TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncOperationWithProgress < TResult , TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncOperationWithProgressCompletedHandler_box :: < TResult , TProgress , F > { const VTABLE : AsyncOperationWithProgressCompletedHandler_abi < TResult , TProgress > = AsyncOperationWithProgressCompletedHandler_abi :: < TResult , TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { let _ = Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , asyncinfo : :: windows :: RawPtr , asyncstatus : AsyncStatus ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & asyncinfo as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: Abi > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AsyncStatus ( pub i32 ) ; impl AsyncStatus { pub const Canceled : AsyncStatus = AsyncStatus ( 2i32 ) ; pub const Completed : AsyncStatus = AsyncStatus ( 1i32 ) ; pub const Error : AsyncStatus = AsyncStatus ( 3i32 ) ; pub const Started : AsyncStatus = AsyncStatus ( 0i32 ) ; } impl :: std :: convert :: From < i32 > for AsyncStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AsyncStatus { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & self . UniversalTime ) . finish ( ) } } impl :: std :: cmp :: PartialEq for DateTime { fn eq ( & self , other : & Self ) -> bool { self . UniversalTime == other . UniversalTime } } impl :: std :: cmp :: Eq for DateTime { } unsafe impl :: windows :: Abi for DateTime { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for DateTime { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.DateTime;i8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncAction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncAction { type Vtable = IAsyncAction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1516535814 ,33850 ,19881 , [ 134 ,91 ,157 ,38 ,229 ,223 ,173 ,123 ] , ) ; } impl < > IAsyncAction { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionCompletedHandler > { let this = self ; unsafe { let mut result__ : < AsyncActionCompletedHandler as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < > :: windows :: RuntimeType for IAsyncAction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{5a648006-843a-4da9-865b-9d26e5dfad7b}" ) ; } impl < > :: std :: future :: Future for IAsyncAction { type Output = :: windows :: Result < ( ) > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncActionCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IUnknown { fn from ( value : IAsyncAction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IUnknown { fn from ( value : & IAsyncAction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncAction > for :: windows :: IInspectable { fn from ( value : IAsyncAction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncAction > for :: windows :: IInspectable { fn from ( value : & IAsyncAction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncAction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IAsyncAction > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncAction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < > :: std :: marker :: Send for IAsyncAction { } unsafe impl < > :: std :: marker :: Sync for IAsyncAction { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncAction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncInfo ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IAsyncInfo { type Vtable = IAsyncInfo_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 54 ,0 ,0 , [ 192 ,0 ,0 ,0 ,0 ,0 ,0 ,70 ] , ) ; } impl < > IAsyncInfo { pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = self ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = self ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IUnknown { fn from ( value : IAsyncInfo ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IUnknown { fn from ( value : & IAsyncInfo ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IAsyncInfo > for :: windows :: IInspectable { fn from ( value : IAsyncInfo ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IAsyncInfo > for :: windows :: IInspectable { fn from ( value : & IAsyncInfo ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncInfo { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncInfo_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut AsyncStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: HRESULT ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperation < TResult > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperation < TResult > { type Vtable = IAsyncOperation_abi < TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperation < TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , > IAsyncOperation < TResult > { pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationCompletedHandler < TResult > > { let this = self ; unsafe { let mut result__ : < AsyncOperationCompletedHandler < TResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationCompletedHandler < TResult > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperation < TResult > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9fc2b0bb-e446-44e2-aa61-9cab8f636af2}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperation < TResult > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : IAsyncOperation < TResult > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : IAsyncOperation < TResult > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperation < TResult > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperation < TResult > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperation < TResult > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperation < TResult > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperation < TResult > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperation_abi < TResult > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , ) where TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IAsyncOperationWithProgress < TResult , TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TResult > , :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncOperationWithProgress < TResult , TProgress > { type Vtable = IAsyncOperationWithProgress_abi < TResult , TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncOperationWithProgress < TResult , TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > IAsyncOperationWithProgress < TResult , TProgress > { pub fn SetProgress < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncOperationProgressHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationProgressHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , Param0 : :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , > ( & self , handler : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < TResult > { let this = self ; unsafe { let mut result__ : < TResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < TResult > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncOperationWithProgress < TResult , TProgress > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{b5d036d7-e297-498f-ba60-0289e76e23dd}" ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncOperationWithProgress < TResult , TProgress > { type Output = :: windows :: Result < TResult > ; fn poll ( self : :: std :: pin :: Pin < & mut Self > , context : & mut :: std :: task :: Context ) -> :: std :: task :: Poll < Self :: Output > { if self . Status ( ) ? == AsyncStatus :: Started { let waker = context . waker ( ) . clone ( ) ; let _ = self . SetCompleted ( AsyncOperationWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IUnknown { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { type Error = :: windows :: Error ; fn try_from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: std :: convert :: TryInto :: < IAsyncInfo > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncOperationWithProgress < TResult , TProgress > { } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncOperationWithProgress < TResult , TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncOperationWithProgress_abi < TResult , TProgress > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TResult > , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IClosable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IClosable { type Vtable = IClosable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 819308585 ,32676 ,16422 , [ 131 ,187 ,215 ,91 ,174 ,78 ,169 ,158 ] , ) ; } impl < > IClosable { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } impl < > :: std :: convert :: From < IClosable > for :: windows :: IUnknown { fn from ( value : IClosable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IUnknown { fn from ( value : & IClosable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IClosable > for :: windows :: IInspectable { fn from ( value : IClosable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IClosable > for :: windows :: IInspectable { fn from ( value : & IClosable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IClosable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IClosable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IPropertyValue ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValue { type Vtable = IPropertyValue_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1272349405 ,30036 ,16617 , [ 154 ,155 ,130 ,101 ,78 ,222 ,126 ,98 ] , ) ; } impl < > IPropertyValue { pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = self ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = self ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = self ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = self ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = self ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = self ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = self ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = self ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = self ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = self ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = self ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IUnknown { fn from ( value : IPropertyValue ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IUnknown { fn from ( value : & IPropertyValue ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IPropertyValue > for :: windows :: IInspectable { fn from ( value : IPropertyValue ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IPropertyValue > for :: windows :: IInspectable { fn from ( value : & IPropertyValue ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IPropertyValue { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValue_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PropertyType ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u8 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut i64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut u16 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut TimeSpan ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Point ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Size ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : * mut u32 , value : * mut * mut Rect ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IReference < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReference < T > { type Vtable = IReference_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReference < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReference < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Rect > ( result__ ) } } pub fn GetUInt8Array < > ( & self , value : & mut :: windows :: Array < u8 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: std :: mem :: transmute_copy ( this ) , value . set_abi_len ( ) , value as * mut _ as _ , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17706-2d65-11e0-9ae8-d48564015472}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IUnknown { fn from ( value : IReference < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IUnknown { fn from ( value : & IReference < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReference < T > > for :: windows :: IInspectable { fn from ( value : IReference < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for :: windows :: IInspectable { fn from ( value : & IReference < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : IReference < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IReference < T > > for IPropertyValue { type Error = :: windows :: Error ; fn try_from ( value : & IReference < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: std :: convert :: TryInto :: < IPropertyValue > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReference_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStringable ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStringable { type Vtable = IStringable_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2520162132 ,36534 ,18672 , [ 171 ,206 ,193 ,178 ,17 ,230 ,39 ,195 ] , ) ; } impl < > IStringable { pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } impl < > :: std :: convert :: From < IStringable > for :: windows :: IUnknown { fn from ( value : IStringable ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IUnknown { fn from ( value : & IStringable ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStringable > for :: windows :: IInspectable { fn from ( value : IStringable ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStringable > for :: windows :: IInspectable { fn from ( value : & IStringable ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStringable { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStringable_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriEscapeStatics { type Vtable = IUriEscapeStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3251909306 ,51236 ,17490 , [ 167 ,253 ,81 ,43 ,195 ,187 ,233 ,161 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriEscapeStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , tounescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClass { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , puri : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassFactory { type Vtable = IUriRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1151957359 ,29246 ,20447 , [ 162 ,24 ,3 ,62 ,117 ,176 ,192 ,132 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , relativeuri : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUriRuntimeClassWithAbsoluteCanonicalUri { type Vtable = IUriRuntimeClassWithAbsoluteCanonicalUri_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1972213345 ,8732 ,18447 , [ 163 ,57 ,80 ,101 ,102 ,115 ,244 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IUriRuntimeClassWithAbsoluteCanonicalUri_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IWwwFormUrlDecoderEntry ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl < > IWwwFormUrlDecoderEntry { pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IUnknown { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : IWwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IWwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & IWwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IWwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderEntry_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClass { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClass_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IWwwFormUrlDecoderRuntimeClassFactory { type Vtable = IWwwFormUrlDecoderRuntimeClassFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1535929149 ,9390 ,16821 , [ 161 ,191 ,240 ,195 ,213 ,68 ,132 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IWwwFormUrlDecoderRuntimeClassFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Point { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y } } impl :: std :: cmp :: Eq for Point { } unsafe impl :: windows :: Abi for Point { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Point { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Point;f4;f4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PropertyType ( pub i32 ) ; impl PropertyType { pub const Empty : PropertyType = PropertyType ( 0i32 ) ; pub const UInt8 : PropertyType = PropertyType ( 1i32 ) ; pub const Int16 : PropertyType = PropertyType ( 2i32 ) ; pub const UInt16 : PropertyType = PropertyType ( 3i32 ) ; pub const Int32 : PropertyType = PropertyType ( 4i32 ) ; pub const UInt32 : PropertyType = PropertyType ( 5i32 ) ; pub const Int64 : PropertyType = PropertyType ( 6i32 ) ; pub const UInt64 : PropertyType = PropertyType ( 7i32 ) ; pub const Single : PropertyType = PropertyType ( 8i32 ) ; pub const Double : PropertyType = PropertyType ( 9i32 ) ; pub const Char16 : PropertyType = PropertyType ( 10i32 ) ; pub const Boolean : PropertyType = PropertyType ( 11i32 ) ; pub const String : PropertyType = PropertyType ( 12i32 ) ; pub const Inspectable : PropertyType = PropertyType ( 13i32 ) ; pub const DateTime : PropertyType = PropertyType ( 14i32 ) ; pub const TimeSpan : PropertyType = PropertyType ( 15i32 ) ; pub const Guid : PropertyType = PropertyType ( 16i32 ) ; pub const Point : PropertyType = PropertyType ( 17i32 ) ; pub const Size : PropertyType = PropertyType ( 18i32 ) ; pub const Rect : PropertyType = PropertyType ( 19i32 ) ; pub const OtherType : PropertyType = PropertyType ( 20i32 ) ; pub const UInt8Array : PropertyType = PropertyType ( 1025i32 ) ; pub const Int16Array : PropertyType = PropertyType ( 1026i32 ) ; pub const UInt16Array : PropertyType = PropertyType ( 1027i32 ) ; pub const Int32Array : PropertyType = PropertyType ( 1028i32 ) ; pub const UInt32Array : PropertyType = PropertyType ( 1029i32 ) ; pub const Int64Array : PropertyType = PropertyType ( 1030i32 ) ; pub const UInt64Array : PropertyType = PropertyType ( 1031i32 ) ; pub const SingleArray : PropertyType = PropertyType ( 1032i32 ) ; pub const DoubleArray : PropertyType = PropertyType ( 1033i32 ) ; pub const Char16Array : PropertyType = PropertyType ( 1034i32 ) ; pub const BooleanArray : PropertyType = PropertyType ( 1035i32 ) ; pub const StringArray : PropertyType = PropertyType ( 1036i32 ) ; pub const InspectableArray : PropertyType = PropertyType ( 1037i32 ) ; pub const DateTimeArray : PropertyType = PropertyType ( 1038i32 ) ; pub const TimeSpanArray : PropertyType = PropertyType ( 1039i32 ) ; pub const GuidArray : PropertyType = PropertyType ( 1040i32 ) ; pub const PointArray : PropertyType = PropertyType ( 1041i32 ) ; pub const SizeArray : PropertyType = PropertyType ( 1042i32 ) ; pub const RectArray : PropertyType = PropertyType ( 1043i32 ) ; pub const OtherTypeArray : PropertyType = PropertyType ( 1044i32 ) ; } impl :: std :: convert :: From < i32 > for PropertyType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PropertyType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for PropertyType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Rect { pub X : f32 , pub Y : f32 , pub Width : f32 , pub Height : f32 } impl Rect { } impl :: std :: default :: Default for Rect { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & self . X ) . field ( "Y" , & self . Y ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Rect { fn eq ( & self , other : & Self ) -> bool { self . X == other . X && self . Y == other . Y && self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Rect { } unsafe impl :: windows :: Abi for Rect { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Rect { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & self . Width ) . field ( "Height" , & self . Height ) . finish ( ) } } impl :: std :: cmp :: PartialEq for Size { fn eq ( & self , other : & Self ) -> bool { self . Width == other . Width && self . Height == other . Height } } impl :: std :: cmp :: Eq for Size { } unsafe impl :: windows :: Abi for Size { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for Size { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { unsafe { :: std :: mem :: zeroed ( ) } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & self . Duration ) . finish ( ) } } impl :: std :: cmp :: PartialEq for TimeSpan { fn eq ( & self , other : & Self ) -> bool { self . Duration == other . Duration } } impl :: std :: cmp :: Eq for TimeSpan { } unsafe impl :: windows :: Abi for TimeSpan { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for TimeSpan { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.TimeSpan;i8)" ) ; } impl :: std :: convert :: From < :: std :: time :: Duration > for TimeSpan { fn from ( value : :: std :: time :: Duration ) -> Self { Self { Duration : ( value . as_nanos ( ) / 100 ) as i64 , } } } impl :: std :: convert :: From < TimeSpan > for :: std :: time :: Duration { fn from ( value : TimeSpan ) -> Self { :: std :: time :: Duration :: from_nanos ( ( value . Duration * 100 ) as u64 ) } } impl < 'a > :: windows :: IntoParam < 'a , TimeSpan > for :: std :: time :: Duration { fn into_param ( self ) -> :: windows :: Param < 'a , TimeSpan > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Uri ( :: windows :: IInspectable ) ; impl Uri { pub fn AbsoluteUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Domain < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Extension < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Fragment < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Host < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Password < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Query < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn QueryParsed < > ( & self , ) -> :: windows :: Result < WwwFormUrlDecoder > { let this = self ; unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } } pub fn RawUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn SchemeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UserName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Port < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn Suspicious < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , Param0 : :: windows :: IntoParam < 'a , Uri > , > ( & self , puri : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , relativeuri : Param0 , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } } pub fn ToString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStringable > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( tounescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( toescape : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: IUriEscapeStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( uri : Param0 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( baseuri : Param0 , relativeuri : Param1 , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , baseuri . into_param ( ) . abi ( ) , relativeuri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn IUriEscapeStatics < R , F : FnOnce ( & IUriEscapeStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriEscapeStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IUriRuntimeClassFactory < R , F : FnOnce ( & IUriRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Uri , IUriRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Uri { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Uri;{9e365e57-48b2-4160-956f-c7385120bbfc})" ) ; } unsafe impl :: windows :: Interface for Uri { type Vtable = IUriRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2654363223 ,18610 ,16736 , [ 149 ,111 ,199 ,56 ,81 ,32 ,187 ,252 ] , ) ; } impl :: windows :: RuntimeName for Uri { const NAME : & 'static str ="Windows.Foundation.Uri" ; } impl < > :: std :: convert :: From < Uri > for :: windows :: IUnknown { fn from ( value : Uri ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IUnknown { fn from ( value : & Uri ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Uri > for :: windows :: IInspectable { fn from ( value : Uri ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Uri > for :: windows :: IInspectable { fn from ( value : & Uri ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : Uri ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & Uri > for IStringable { type Error = :: windows :: Error ; fn try_from ( value : & Uri ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: std :: convert :: TryInto :: < IStringable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for Uri { } unsafe impl :: std :: marker :: Sync for Uri { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoder ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoder { pub fn GetFirstValueByName < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > { let this = & :: windows :: Interface :: cast :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > > ( result__ ) } } pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < IWwwFormUrlDecoderEntry > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( query : Param0 , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , query . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < WwwFormUrlDecoder > ( result__ ) } ) } pub fn IWwwFormUrlDecoderRuntimeClassFactory < R , F : FnOnce ( & IWwwFormUrlDecoderRuntimeClassFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < WwwFormUrlDecoder , IWwwFormUrlDecoderRuntimeClassFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoder;{d45a0451-f225-4542-9296-0e1df5d254df})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoder { type Vtable = IWwwFormUrlDecoderRuntimeClass_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3562669137 ,61989 ,17730 , [ 146 ,150 ,14 ,29 ,245 ,210 ,84 ,223 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoder { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoder" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : WwwFormUrlDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IUnknown { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { type Error = :: windows :: Error ; fn try_from ( value : & WwwFormUrlDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: std :: convert :: TryInto :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoder { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoder { } impl < > :: std :: iter :: IntoIterator for WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < > :: std :: iter :: IntoIterator for & WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( :: std :: convert :: TryInto :: try_into ( self ) . ok ( ) ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Collections { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterable < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterable < T > { type Vtable = IIterable_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterable < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterable < T > { pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = self ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{faa585ea-6214-4217-afda-7f46de5869b3}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IUnknown { fn from ( value : IIterable < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IUnknown { fn from ( value : & IIterable < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterable < T > > for :: windows :: IInspectable { fn from ( value : IIterable < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterable < T > > for :: windows :: IInspectable { fn from ( value : & IIterable < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterable < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IIterable < T > { type Item = T ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterable_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IIterator < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IIterator < T > { type Vtable = IIterator_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IIterator < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IIterator < T > { pub fn Current < > ( & self , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn HasCurrent < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn MoveNext < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterator < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6a79e863-4300-459a-9966-cbb660963ee1}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IUnknown { fn from ( value : IIterator < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IUnknown { fn from ( value : & IIterator < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IIterator < T > > for :: windows :: IInspectable { fn from ( value : IIterator < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IIterator < T > > for :: windows :: IInspectable { fn from ( value : & IIterator < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IIterator < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for IIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { let result = self . Current ( ) . ok ( ) ; if result . is_some ( ) { self . MoveNext ( ) . ok ( ) ? ; } result } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IIterator_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IKeyValuePair < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IKeyValuePair < K , V > { type Vtable = IKeyValuePair_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IKeyValuePair < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IKeyValuePair < K , V > { pub fn Key < > ( & self , ) -> :: windows :: Result < K > { let this = self ; unsafe { let mut result__ : < K as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < K > ( result__ ) } } pub fn Value < > ( & self , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IKeyValuePair < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{02b51929-c1c4-4a7e-8940-0312b5c18500}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : IKeyValuePair < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IUnknown { fn from ( value : & IKeyValuePair < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : IKeyValuePair < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IKeyValuePair < K , V > > for :: windows :: IInspectable { fn from ( value : & IKeyValuePair < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IKeyValuePair < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IKeyValuePair_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMap < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMap < K , V > { type Vtable = IMap_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMap < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMap < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IMapView < K , V > > { let this = self ; unsafe { let mut result__ : < IMapView < K , V > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IMapView < K , V > > ( result__ ) } } pub fn Insert < 'a , Param0 : :: windows :: IntoParam < 'a , K > , Param1 : :: windows :: IntoParam < 'a , V > , > ( & self , key : Param0 , value : Param1 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Remove < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMap < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{3c2925fe-8519-45c1-aa79-197b6718c1c1}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IUnknown { fn from ( value : IMap < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IUnknown { fn from ( value : & IMap < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMap < K , V > > for :: windows :: IInspectable { fn from ( value : IMap < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMap < K , V > > for :: windows :: IInspectable { fn from ( value : & IMap < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMap < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMap < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMap < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMap < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMap < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMap_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , value : < V as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMapView < K , V > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < K > , :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IMapView < K , V > { type Vtable = IMapView_abi < K , V > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IMapView < K , V > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > IMapView < K , V > { pub fn Lookup < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < V > { let this = self ; unsafe { let mut result__ : < V as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < V > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn HasKey < 'a , Param0 : :: windows :: IntoParam < 'a , K > , > ( & self , key : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , key . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Split < > ( & self , first : & mut :: std :: option :: Option < IMapView < K , V > > , second : & mut :: std :: option :: Option < IMapView < K , V > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , first as * mut _ as _ , second as * mut _ as _ , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < IKeyValuePair < K , V > > > { let this = & :: windows :: Interface :: cast :: < IIterable < IKeyValuePair < K , V > > > ( self ) ? ; unsafe { let mut result__ : < IIterator < IKeyValuePair < K , V > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < IKeyValuePair < K , V > > > ( result__ ) } } } unsafe impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IMapView < K , V > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{e480ce40-a338-4ada-adcf-272272e48cb9}" ) . push_slice ( b";" ) . push_other ( < K as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < V as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : IMapView < K , V > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IUnknown { fn from ( value : & IMapView < K , V > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : IMapView < K , V > ) -> Self { value . 0 } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IMapView < K , V > > for :: windows :: IInspectable { fn from ( value : & IMapView < K , V > ) -> Self { value . 0 . clone ( ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : IMapView < K , V > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IMapView < K , V > > for IIterable < IKeyValuePair < K , V > > { type Error = :: windows :: Error ; fn try_from ( value : & IMapView < K , V > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < IKeyValuePair < K , V > > > for & IMapView < K , V > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < IKeyValuePair < K , V > > > { :: std :: convert :: TryInto :: < IIterable < IKeyValuePair < K , V > > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , > :: std :: iter :: IntoIterator for & IMapView < K , V > { type Item = IKeyValuePair < K , V > ; type IntoIter = IIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { self . First ( ) . unwrap ( ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMapView_abi < K , V > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut < V as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , key : < K as :: windows :: Abi > :: Abi , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , first : * mut :: windows :: RawPtr , second : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < K > , pub :: std :: marker :: PhantomData :: < V > , ) where K : :: windows :: RuntimeType + 'static , V : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVector < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVector < T > { type Vtable = IVector_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVector < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVector < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetView < > ( & self , ) -> :: windows :: Result < IVectorView < T > > { let this = self ; unsafe { let mut result__ : < IVectorView < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IVectorView < T > > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn InsertAt < 'a , Param1 : :: windows :: IntoParam < 'a , T > , > ( & self , index : u32 , value : Param1 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , index , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAt < > ( & self , index : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , index , ) . ok ( ) } } pub fn Append < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RemoveAtEnd < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Clear < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReplaceAll < > ( & self , items : & [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , items . len ( ) as u32 , :: std :: mem :: transmute ( items . as_ptr ( ) ) , ) . ok ( ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVector < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{913337e9-11a1-4345-a3a2-4e7f956e222d}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IUnknown { fn from ( value : IVector < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IUnknown { fn from ( value : & IVector < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVector < T > > for :: windows :: IInspectable { fn from ( value : IVector < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVector < T > > for :: windows :: IInspectable { fn from ( value : & IVector < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVector < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVector < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVector < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVector < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVector < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVector < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVector < T > { type Item = T ; type IntoIter = VectorIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVector_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , items_array_size : u32 , items : * const < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IVectorView < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IVectorView < T > { type Vtable = IVectorView_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IVectorView < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IVectorView < T > { pub fn GetAt < > ( & self , index : u32 , ) -> :: windows :: Result < T > { let this = self ; unsafe { let mut result__ : < T as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , index , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , Param0 : :: windows :: IntoParam < 'a , T > , > ( & self , value : Param0 , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: Abi > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn First < > ( & self , ) -> :: windows :: Result < IIterator < T > > { let this = & :: windows :: Interface :: cast :: < IIterable < T > > ( self ) ? ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{bbe1fa4c-b0e3-4583-baef-1f1b2e483e56}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IUnknown { fn from ( value : IVectorView < T > ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IUnknown { fn from ( value : & IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IVectorView < T > > for :: windows :: IInspectable { fn from ( value : IVectorView < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for :: windows :: IInspectable { fn from ( value : & IVectorView < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : IVectorView < T > ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: TryFrom < & IVectorView < T > > for IIterable < T > { type Error = :: windows :: Error ; fn try_from ( value : & IVectorView < T > ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: std :: convert :: TryInto :: < IIterable < T > > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : :: std :: option :: Option < IVectorView < T >> , current : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : :: std :: option :: Option < IVectorView < T >> ) -> Self { Self { vector , current : 0 } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { self . vector . as_ref ( ) . and_then ( | vector | { vector . GetAt ( self . current ) . ok ( ) } ) . and_then ( | result | { self . current += 1 ; Some ( result ) } ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { :: std :: iter :: IntoIterator :: into_iter ( & self ) } } impl < T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: std :: option :: Option :: Some ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVectorView_abi < T > ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , index : u32 , result__ : * mut < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : < T as :: windows :: Abi > :: Abi , index : * mut u32 , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , items_array_size : u32 , items : * mut < T as :: windows :: Abi > :: Abi , result__ : * mut u32 ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Globalization { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage2 { type Vtable = ILanguage2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1783096757 ,55629 ,18566 , [ 164 ,4 ,165 ,165 ,185 ,213 ,180 ,148 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut LanguageLayoutDirection ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguage3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguage3 { type Vtable = ILanguage3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3333373200 ,25626 ,23460 , [ 187 ,67 ,94 ,18 ,174 ,215 ,89 ,84 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguage3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageExtensionSubtags { type Vtable = ILanguageExtensionSubtags_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2105388869 ,13965 ,17252 , [ 133 ,43 ,222 ,201 ,39 ,3 ,123 ,133 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageExtensionSubtags_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , singleton : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageFactory { type Vtable = ILanguageFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2600620716 ,3111 ,17656 , [ 183 ,146 ,151 ,147 ,251 ,102 ,198 ,62 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics { type Vtable = ILanguageStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2990331223 ,2149 ,18132 , [ 137 ,184 ,213 ,155 ,232 ,153 ,15 ,13 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics2 { type Vtable = ILanguageStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 806985582 ,37195 ,19242 , [ 157 ,110 ,227 ,176 ,226 ,125 ,190 ,79 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetag : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ILanguageStatics3 { type Vtable = ILanguageStatics3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3512650586 ,29150 ,22354 , [ 149 ,66 ,250 ,197 ,180 ,242 ,114 ,97 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ILanguageStatics3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , languagetags : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Language ( :: windows :: IInspectable ) ; impl Language { pub fn LanguageTag < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn NativeName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Script < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetExtensionSubtags < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , singleton : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = & :: windows :: Interface :: cast :: < ILanguageExtensionSubtags > ( self ) ? ; unsafe { let mut result__ : < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , singleton . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn CreateLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < Language > { Self :: ILanguageFactory ( | this | unsafe { let mut result__ : < Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Language > ( result__ ) } ) } pub fn IsWellFormed < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn CurrentInputMethodLanguageTag < > ( ) -> :: windows :: Result < :: windows :: HSTRING > { Self :: ILanguageStatics ( | this | unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn TrySetInputMethodLanguageTag < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( languagetag : Param0 , ) -> :: windows :: Result < bool > { Self :: ILanguageStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetag . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn LayoutDirection < > ( & self , ) -> :: windows :: Result < LanguageLayoutDirection > { let this = & :: windows :: Interface :: cast :: < ILanguage2 > ( self ) ? ; unsafe { let mut result__ : < LanguageLayoutDirection as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < LanguageLayoutDirection > ( result__ ) } } pub fn AbbreviatedName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < ILanguage3 > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetMuiCompatibleLanguageListFromLanguageTags < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( languagetags : Param0 , ) -> :: windows :: Result < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > { Self :: ILanguageStatics3 ( | this | unsafe { let mut result__ : < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , languagetags . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation::Collections:: IVector :: < :: windows :: HSTRING > > ( result__ ) } ) } pub fn ILanguageFactory < R , F : FnOnce ( & ILanguageFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics < R , F : FnOnce ( & ILanguageStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics2 < R , F : FnOnce ( & ILanguageStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ILanguageStatics3 < R , F : FnOnce ( & ILanguageStatics3 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Language , ILanguageStatics3 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Language { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Globalization.Language;{ea79a752-f7c2-4265-b1bd-c4dec4e4f080})" ) ; } unsafe impl :: windows :: Interface for Language { type Vtable = ILanguage_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933841234 ,63426 ,16997 , [ 177 ,189 ,196 ,222 ,196 ,228 ,240 ,128 ] , ) ; } impl :: windows :: RuntimeName for Language { const NAME : & 'static str ="Windows.Globalization.Language" ; } impl < > :: std :: convert :: From < Language > for :: windows :: IUnknown { fn from ( value : Language ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & Language > for :: windows :: IUnknown { fn from ( value : & Language ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < Language > for :: windows :: IInspectable { fn from ( value : Language ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Language > for :: windows :: IInspectable { fn from ( value : & Language ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Language { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Language { } unsafe impl :: std :: marker :: Sync for Language { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct LanguageLayoutDirection ( pub i32 ) ; impl LanguageLayoutDirection { pub const Ltr : LanguageLayoutDirection = LanguageLayoutDirection ( 0i32 ) ; pub const Rtl : LanguageLayoutDirection = LanguageLayoutDirection ( 1i32 ) ; pub const TtbLtr : LanguageLayoutDirection = LanguageLayoutDirection ( 2i32 ) ; pub const TtbRtl : LanguageLayoutDirection = LanguageLayoutDirection ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for LanguageLayoutDirection { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for LanguageLayoutDirection { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for LanguageLayoutDirection { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Globalization.LanguageLayoutDirection;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Graphics { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod DirectX { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Direct3D11 { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IDirect3DSurface ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDirect3DSurface { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 200581446 ,5057 ,18068 , [ 190 ,227 ,122 ,191 ,21 ,234 ,245 ,134 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IDirect3DSurface { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{0bf4a146-13c1-4694-bee3-7abf15eaf586}" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Imaging { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapAlphaMode ( pub i32 ) ; impl BitmapAlphaMode { pub const Premultiplied : BitmapAlphaMode = BitmapAlphaMode ( 0i32 ) ; pub const Straight : BitmapAlphaMode = BitmapAlphaMode ( 1i32 ) ; pub const Ignore : BitmapAlphaMode = BitmapAlphaMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapAlphaMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapAlphaMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapAlphaMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapAlphaMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapBuffer ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapBuffer;{a53e04c4-399c-438c-b28f-a63a6b83d1a1})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapBufferAccessMode ( pub i32 ) ; impl BitmapBufferAccessMode { pub const Read : BitmapBufferAccessMode = BitmapBufferAccessMode ( 0i32 ) ; pub const ReadWrite : BitmapBufferAccessMode = BitmapBufferAccessMode ( 1i32 ) ; pub const Write : BitmapBufferAccessMode = BitmapBufferAccessMode ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapBufferAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapBufferAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapBufferAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapBufferAccessMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapCodecInformation ( :: windows :: IInspectable ) ; impl BitmapCodecInformation { pub fn CodecId < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = self ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn FileExtensions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } pub fn FriendlyName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn MimeTypes < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < :: windows :: HSTRING > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapCodecInformation { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapCodecInformation;{400caaf2-c4b0-4392-a3b0-6f6f9ba95cb4})" ) ; } unsafe impl :: windows :: Interface for BitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } impl :: windows :: RuntimeName for BitmapCodecInformation { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapCodecInformation" ; } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : BitmapCodecInformation ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IUnknown { fn from ( value : & BitmapCodecInformation ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : BitmapCodecInformation ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapCodecInformation > for :: windows :: IInspectable { fn from ( value : & BitmapCodecInformation ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapCodecInformation { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for BitmapCodecInformation { } unsafe impl :: std :: marker :: Sync for BitmapCodecInformation { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapDecoder ( :: windows :: IInspectable ) ; impl BitmapDecoder { pub fn BitmapContainerProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn DecoderInformation < > ( & self , ) -> :: windows :: Result < BitmapCodecInformation > { let this = self ; unsafe { let mut result__ : < BitmapCodecInformation as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapCodecInformation > ( result__ ) } } pub fn FrameCount < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPreviewAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn GetFrameAsync < > ( & self , frameindex : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , frameindex , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapFrame > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn BmpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn PngDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn TiffDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn JpegXRDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IcoDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn GetDecoderInformationEnumerator < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BitmapCodecInformation > > ( result__ ) } ) } pub fn CreateAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( stream : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn CreateWithIdAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: Guid > , Param1 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > , > ( decoderid : Param0 , stream : Param1 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > { Self :: IBitmapDecoderStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , decoderid . into_param ( ) . abi ( ) , stream . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < BitmapDecoder > > ( result__ ) } ) } pub fn HeifDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn WebpDecoderId < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IBitmapDecoderStatics2 ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn IBitmapDecoderStatics < R , F : FnOnce ( & IBitmapDecoderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IBitmapDecoderStatics2 < R , F : FnOnce ( & IBitmapDecoderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < BitmapDecoder , IBitmapDecoderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for BitmapDecoder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapDecoder;{acef22ba-1d74-4c91-9dfc-9620745233e6})" ) ; } unsafe impl :: windows :: Interface for BitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } impl :: windows :: RuntimeName for BitmapDecoder { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapDecoder" ; } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IUnknown { fn from ( value : BitmapDecoder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IUnknown { fn from ( value : & BitmapDecoder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapDecoder > for :: windows :: IInspectable { fn from ( value : BitmapDecoder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapDecoder > for :: windows :: IInspectable { fn from ( value : & BitmapDecoder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapDecoder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapDecoder > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapDecoder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapDecoder { } unsafe impl :: std :: marker :: Sync for BitmapDecoder { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BitmapFrame ( :: windows :: IInspectable ) ; impl BitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrameWithSoftwareBitmap > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapFrame;{72a49a1c-8081-438d-91bc-94ecfc8185c6})" ) ; } unsafe impl :: windows :: Interface for BitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl :: windows :: RuntimeName for BitmapFrame { const NAME : & 'static str ="Windows.Graphics.Imaging.BitmapFrame" ; } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IUnknown { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IUnknown { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BitmapFrame > for :: windows :: IInspectable { fn from ( value : BitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BitmapFrame > for :: windows :: IInspectable { fn from ( value : & BitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < BitmapFrame > for IBitmapFrame { fn from ( value : BitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BitmapFrame > for IBitmapFrame { fn from ( value : & BitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IBitmapFrame > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : BitmapFrame ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BitmapFrame > for IBitmapFrameWithSoftwareBitmap { type Error = :: windows :: Error ; fn try_from ( value : & BitmapFrame ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrameWithSoftwareBitmap > for & BitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrameWithSoftwareBitmap > { :: std :: convert :: TryInto :: < IBitmapFrameWithSoftwareBitmap > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for BitmapFrame { } unsafe impl :: std :: marker :: Sync for BitmapFrame { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct BitmapPixelFormat ( pub i32 ) ; impl BitmapPixelFormat { pub const Unknown : BitmapPixelFormat = BitmapPixelFormat ( 0i32 ) ; pub const Rgba16 : BitmapPixelFormat = BitmapPixelFormat ( 12i32 ) ; pub const Rgba8 : BitmapPixelFormat = BitmapPixelFormat ( 30i32 ) ; pub const Gray16 : BitmapPixelFormat = BitmapPixelFormat ( 57i32 ) ; pub const Gray8 : BitmapPixelFormat = BitmapPixelFormat ( 62i32 ) ; pub const Bgra8 : BitmapPixelFormat = BitmapPixelFormat ( 87i32 ) ; pub const Nv12 : BitmapPixelFormat = BitmapPixelFormat ( 103i32 ) ; pub const P010 : BitmapPixelFormat = BitmapPixelFormat ( 104i32 ) ; pub const Yuy2 : BitmapPixelFormat = BitmapPixelFormat ( 107i32 ) ; } impl :: std :: convert :: From < i32 > for BitmapPixelFormat { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for BitmapPixelFormat { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for BitmapPixelFormat { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.BitmapPixelFormat;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapPropertiesView ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapPropertiesView;{7e0fe87a-3a70-48f8-9c55-196cf5a545f5})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct BitmapTransform ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for BitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl :: windows :: RuntimeType for BitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.BitmapTransform;{ae755344-e268-4d35-adcf-e995d31a8d34})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ColorManagementMode ( pub i32 ) ; impl ColorManagementMode { pub const DoNotColorManage : ColorManagementMode = ColorManagementMode ( 0i32 ) ; pub const ColorManageToSRgb : ColorManagementMode = ColorManagementMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ColorManagementMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ColorManagementMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ColorManagementMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ColorManagementMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ExifOrientationMode ( pub i32 ) ; impl ExifOrientationMode { pub const IgnoreExifOrientation : ExifOrientationMode = ExifOrientationMode ( 0i32 ) ; pub const RespectExifOrientation : ExifOrientationMode = ExifOrientationMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ExifOrientationMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ExifOrientationMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ExifOrientationMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Graphics.Imaging.ExifOrientationMode;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapBuffer { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2772305092 ,14748 ,17292 , [ 178 ,143 ,166 ,58 ,107 ,131 ,209 ,161 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{a53e04c4-399c-438c-b28f-a63a6b83d1a1}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapCodecInformation { type Vtable = IBitmapCodecInformation_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1074572018 ,50352 ,17298 , [ 163 ,176 ,111 ,111 ,155 ,169 ,92 ,180 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapCodecInformation_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoder { type Vtable = IBitmapDecoder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2901353146 ,7540 ,19601 , [ 157 ,252 ,150 ,32 ,116 ,82 ,51 ,230 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , frameindex : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics { type Vtable = IBitmapDecoderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133300518 ,48367 ,20117 , [ 186 ,214 ,35 ,168 ,34 ,229 ,141 ,1 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , decoderid : :: windows :: Guid , stream : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapDecoderStatics2 { type Vtable = IBitmapDecoderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1354393834 ,39329 ,16580 , [ 128 ,217 ,174 ,240 ,218 ,250 ,108 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapDecoderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: Guid ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrame ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrame { type Vtable = IBitmapFrame_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1923389980 ,32897 ,17293 , [ 145 ,188 ,148 ,236 ,252 ,129 ,133 ,198 ] , ) ; } impl < > IBitmapFrame { pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = self ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrame { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72a49a1c-8081-438d-91bc-94ecfc8185c6}" ) ; } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IUnknown { fn from ( value : IBitmapFrame ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IUnknown { fn from ( value : & IBitmapFrame ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrame > for :: windows :: IInspectable { fn from ( value : IBitmapFrame ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrame > for :: windows :: IInspectable { fn from ( value : & IBitmapFrame ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrame { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrame_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBitmapFrameWithSoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapFrameWithSoftwareBitmap { type Vtable = IBitmapFrameWithSoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4264066202 ,16908 ,18787 , [ 135 ,173 ,105 ,20 ,54 ,224 ,131 ,131 ] , ) ; } impl < > IBitmapFrameWithSoftwareBitmap { pub fn GetSoftwareBitmapAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapConvertedAsync < > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetSoftwareBitmapTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < ImageStream > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < ImageStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < ImageStream > > ( result__ ) } } pub fn BitmapProperties < > ( & self , ) -> :: windows :: Result < BitmapPropertiesView > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPropertiesView as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPropertiesView > ( result__ ) } } pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OrientedPixelHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetPixelDataAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } pub fn GetPixelDataTransformedAsync < 'a , Param2 : :: windows :: IntoParam < 'a , BitmapTransform > , > ( & self , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : Param2 , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > { let this = & :: windows :: Interface :: cast :: < IBitmapFrame > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , pixelformat , alphamode , transform . into_param ( ) . abi ( ) , exiforientationmode , colormanagementmode , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < PixelDataProvider > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IBitmapFrameWithSoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fe287c9a-420c-4963-87ad-691436e08383}" ) ; } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBitmapFrameWithSoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & IBitmapFrameWithSoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IBitmapFrameWithSoftwareBitmap > for IBitmapFrame { type Error = :: windows :: Error ; fn try_from ( value : & IBitmapFrameWithSoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IBitmapFrame > for & IBitmapFrameWithSoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , IBitmapFrame > { :: std :: convert :: TryInto :: < IBitmapFrame > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBitmapFrameWithSoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , pixelformat : BitmapPixelFormat , alphamode : BitmapAlphaMode , transform : :: windows :: RawPtr , exiforientationmode : ExifOrientationMode , colormanagementmode : ColorManagementMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapPropertiesView ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapPropertiesView { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2114971770 ,14960 ,18680 , [ 156 ,85 ,25 ,108 ,245 ,165 ,69 ,245 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapPropertiesView { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{7e0fe87a-3a70-48f8-9c55-196cf5a545f5}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBitmapTransform ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBitmapTransform { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2926924612 ,57960 ,19765 , [ 173 ,207 ,233 ,149 ,211 ,26 ,141 ,52 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IBitmapTransform { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{ae755344-e268-4d35-adcf-e995d31a8d34}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPixelDataProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result_size__ : * mut u32 , result__ : * mut * mut u8 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmap_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapPixelFormat ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BitmapAlphaMode ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : BitmapBufferAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapFactory { type Vtable = ISoftwareBitmapFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382700905 ,11618 ,19783 , [ 166 ,179 ,79 ,219 ,106 ,7 ,253 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ISoftwareBitmapStatics { type Vtable = ISoftwareBitmapStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3741550043 ,26415 ,19101 , [ 128 ,110 ,194 ,68 ,47 ,52 ,62 ,134 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ISoftwareBitmapStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , source : :: windows :: RawPtr , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , surface : :: windows :: RawPtr , alpha : BitmapAlphaMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct ImageStream ( :: windows :: IInspectable ) ; impl ImageStream { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::super::Storage::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::super::Storage::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::super::Storage::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::super::Storage::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Storage::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Storage::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::super::Storage::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for ImageStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.ImageStream;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for ImageStream { type Vtable = super::super::Storage::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for ImageStream { const NAME : & 'static str ="Windows.Graphics.Imaging.ImageStream" ; } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IUnknown { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IUnknown { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < ImageStream > for :: windows :: IInspectable { fn from ( value : ImageStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & ImageStream > for :: windows :: IInspectable { fn from ( value : & ImageStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : ImageStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & ImageStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::super::Storage::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IContentTypeProvider > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IInputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IOutputStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : ImageStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & ImageStream > for super::super::Storage::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & ImageStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IRandomAccessStream > for & ImageStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Storage::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::super::Storage::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for ImageStream { } unsafe impl :: std :: marker :: Sync for ImageStream { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PixelDataProvider ( :: windows :: IInspectable ) ; impl PixelDataProvider { pub fn DetachPixelData < > ( & self , ) -> :: windows :: Result < :: windows :: Array < u8 > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < u8 > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , :: windows :: Array :: < u8 > :: set_abi_len ( & mut result__ ) , & mut result__ as * mut _ as _ ) . and_then ( || result__ ) } } } unsafe impl :: windows :: RuntimeType for PixelDataProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.PixelDataProvider;{dd831f25-185c-4595-9fb9-ccbe6ec18a6f})" ) ; } unsafe impl :: windows :: Interface for PixelDataProvider { type Vtable = IPixelDataProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3716357925 ,6236 ,17813 , [ 159 ,185 ,204 ,190 ,110 ,193 ,138 ,111 ] , ) ; } impl :: windows :: RuntimeName for PixelDataProvider { const NAME : & 'static str ="Windows.Graphics.Imaging.PixelDataProvider" ; } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IUnknown { fn from ( value : PixelDataProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IUnknown { fn from ( value : & PixelDataProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < PixelDataProvider > for :: windows :: IInspectable { fn from ( value : PixelDataProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PixelDataProvider > for :: windows :: IInspectable { fn from ( value : & PixelDataProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PixelDataProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PixelDataProvider { } unsafe impl :: std :: marker :: Sync for PixelDataProvider { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct SoftwareBitmap ( :: windows :: IInspectable ) ; impl SoftwareBitmap { pub fn BitmapPixelFormat < > ( & self , ) -> :: windows :: Result < BitmapPixelFormat > { let this = self ; unsafe { let mut result__ : < BitmapPixelFormat as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapPixelFormat > ( result__ ) } } pub fn BitmapAlphaMode < > ( & self , ) -> :: windows :: Result < BitmapAlphaMode > { let this = self ; unsafe { let mut result__ : < BitmapAlphaMode as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < BitmapAlphaMode > ( result__ ) } } pub fn PixelWidth < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn PixelHeight < > ( & self , ) -> :: windows :: Result < i32 > { let this = self ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn IsReadOnly < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn SetDpiX < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiX < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetDpiY < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn DpiY < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn LockBuffer < > ( & self , mode : BitmapBufferAccessMode , ) -> :: windows :: Result < BitmapBuffer > { let this = self ; unsafe { let mut result__ : < BitmapBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < BitmapBuffer > ( result__ ) } } pub fn CopyTo < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn CopyToBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetReadOnlyView < > ( & self , ) -> :: windows :: Result < SoftwareBitmap > { let this = self ; unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn Create < > ( format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateWithAlpha < > ( format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapFactory ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Copy < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn Convert < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn ConvertWithAlpha < 'a , Param0 : :: windows :: IntoParam < 'a , SoftwareBitmap > , > ( source : Param0 , format : BitmapPixelFormat , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromBuffer < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Storage::Streams:: IBuffer > , > ( source : Param0 , format : BitmapPixelFormat , width : i32 , height : i32 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < SoftwareBitmap > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < SoftwareBitmap as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , source . into_param ( ) . abi ( ) , format , width , height , alpha , & mut result__ ) . from_abi :: < SoftwareBitmap > ( result__ ) } ) } pub fn CreateCopyFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn CreateCopyWithAlphaFromSurfaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::DirectX::Direct3D11:: IDirect3DSurface > , > ( surface : Param0 , alpha : BitmapAlphaMode , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > { Self :: ISoftwareBitmapStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , surface . into_param ( ) . abi ( ) , alpha , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < SoftwareBitmap > > ( result__ ) } ) } pub fn ISoftwareBitmapFactory < R , F : FnOnce ( & ISoftwareBitmapFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn ISoftwareBitmapStatics < R , F : FnOnce ( & ISoftwareBitmapStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < SoftwareBitmap , ISoftwareBitmapStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for SoftwareBitmap { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Graphics.Imaging.SoftwareBitmap;{689e0708-7eef-483f-963f-da938818e073})" ) ; } unsafe impl :: windows :: Interface for SoftwareBitmap { type Vtable = ISoftwareBitmap_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1755186952 ,32495 ,18495 , [ 150 ,63 ,218 ,147 ,136 ,24 ,224 ,115 ] , ) ; } impl :: windows :: RuntimeName for SoftwareBitmap { const NAME : & 'static str ="Windows.Graphics.Imaging.SoftwareBitmap" ; } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : SoftwareBitmap ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IUnknown { fn from ( value : & SoftwareBitmap ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : SoftwareBitmap ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & SoftwareBitmap > for :: windows :: IInspectable { fn from ( value : & SoftwareBitmap ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : SoftwareBitmap ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & SoftwareBitmap > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & SoftwareBitmap ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & SoftwareBitmap { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } unsafe impl :: std :: marker :: Send for SoftwareBitmap { } unsafe impl :: std :: marker :: Sync for SoftwareBitmap { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Media { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Ocr { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , bitmap : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrEngineStatics { type Vtable = IOcrEngineStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1543481434 ,13188 ,13632 , [ 153 ,64 ,105 ,145 ,32 ,212 ,40 ,168 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrEngineStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , language : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrLine ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrLine_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrResult_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IOcrWord ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOcrWord_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: Rect ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrEngine ( :: windows :: IInspectable ) ; impl OcrEngine { pub fn RecognizeAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Graphics::Imaging:: SoftwareBitmap > , > ( & self , bitmap : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < OcrResult > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < OcrResult > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , bitmap . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < OcrResult > > ( result__ ) } } pub fn RecognizerLanguage < > ( & self , ) -> :: windows :: Result < super::super::Globalization:: Language > { let this = self ; unsafe { let mut result__ : < super::super::Globalization:: Language as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Globalization:: Language > ( result__ ) } } pub fn MaxImageDimension < > ( ) -> :: windows :: Result < u32 > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } ) } pub fn AvailableRecognizerLanguages < > ( ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < super::super::Globalization:: Language > > ( result__ ) } ) } pub fn IsLanguageSupported < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < bool > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn TryCreateFromLanguage < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Globalization:: Language > , > ( language : Param0 , ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , language . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn TryCreateFromUserProfileLanguages < > ( ) -> :: windows :: Result < OcrEngine > { Self :: IOcrEngineStatics ( | this | unsafe { let mut result__ : < OcrEngine as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < OcrEngine > ( result__ ) } ) } pub fn IOcrEngineStatics < R , F : FnOnce ( & IOcrEngineStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < OcrEngine , IOcrEngineStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for OcrEngine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrEngine;{5a14bc41-5b76-3140-b680-8825562683ac})" ) ; } unsafe impl :: windows :: Interface for OcrEngine { type Vtable = IOcrEngine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1511308353 ,23414 ,12608 , [ 182 ,128 ,136 ,37 ,86 ,38 ,131 ,172 ] , ) ; } impl :: windows :: RuntimeName for OcrEngine { const NAME : & 'static str ="Windows.Media.Ocr.OcrEngine" ; } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IUnknown { fn from ( value : OcrEngine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IUnknown { fn from ( value : & OcrEngine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrEngine > for :: windows :: IInspectable { fn from ( value : OcrEngine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrEngine > for :: windows :: IInspectable { fn from ( value : & OcrEngine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrEngine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrEngine { } unsafe impl :: std :: marker :: Sync for OcrEngine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrLine ( :: windows :: IInspectable ) ; impl OcrLine { pub fn Words < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrWord > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrWord > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrLine { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrLine;{0043a16f-e31f-3a24-899c-d444bd088124})" ) ; } unsafe impl :: windows :: Interface for OcrLine { type Vtable = IOcrLine_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4432239 ,58143 ,14884 , [ 137 ,156 ,212 ,68 ,189 ,8 ,129 ,36 ] , ) ; } impl :: windows :: RuntimeName for OcrLine { const NAME : & 'static str ="Windows.Media.Ocr.OcrLine" ; } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IUnknown { fn from ( value : OcrLine ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IUnknown { fn from ( value : & OcrLine ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrLine > for :: windows :: IInspectable { fn from ( value : OcrLine ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrLine > for :: windows :: IInspectable { fn from ( value : & OcrLine ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrLine { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrLine { } unsafe impl :: std :: marker :: Sync for OcrLine { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrResult ( :: windows :: IInspectable ) ; impl OcrResult { pub fn Lines < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < OcrLine > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < OcrLine > > ( result__ ) } } pub fn TextAngle < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < f64 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < f64 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrResult;{9bd235b2-175b-3d6a-92e2-388c206e2f63})" ) ; } unsafe impl :: windows :: Interface for OcrResult { type Vtable = IOcrResult_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2614244786 ,5979 ,15722 , [ 146 ,226 ,56 ,140 ,32 ,110 ,47 ,99 ] , ) ; } impl :: windows :: RuntimeName for OcrResult { const NAME : & 'static str ="Windows.Media.Ocr.OcrResult" ; } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IUnknown { fn from ( value : OcrResult ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IUnknown { fn from ( value : & OcrResult ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrResult > for :: windows :: IInspectable { fn from ( value : OcrResult ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrResult > for :: windows :: IInspectable { fn from ( value : & OcrResult ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrResult { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrResult { } unsafe impl :: std :: marker :: Sync for OcrResult { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct OcrWord ( :: windows :: IInspectable ) ; impl OcrWord { pub fn BoundingRect < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: Rect > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: Rect > ( result__ ) } } pub fn Text < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for OcrWord { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Media.Ocr.OcrWord;{3c2a477a-5cd9-3525-ba2a-23d1e0a68a1d})" ) ; } unsafe impl :: windows :: Interface for OcrWord { type Vtable = IOcrWord_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1009403770 ,23769 ,13605 , [ 186 ,42 ,35 ,209 ,224 ,166 ,138 ,29 ] , ) ; } impl :: windows :: RuntimeName for OcrWord { const NAME : & 'static str ="Windows.Media.Ocr.OcrWord" ; } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IUnknown { fn from ( value : OcrWord ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IUnknown { fn from ( value : & OcrWord ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < OcrWord > for :: windows :: IInspectable { fn from ( value : OcrWord ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & OcrWord > for :: windows :: IInspectable { fn from ( value : & OcrWord ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a OcrWord { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for OcrWord { } unsafe impl :: std :: marker :: Sync for OcrWord { } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CreationCollisionOption ( pub i32 ) ; impl CreationCollisionOption { pub const GenerateUniqueName : CreationCollisionOption = CreationCollisionOption ( 0i32 ) ; pub const ReplaceExisting : CreationCollisionOption = CreationCollisionOption ( 1i32 ) ; pub const FailIfExists : CreationCollisionOption = CreationCollisionOption ( 2i32 ) ; pub const OpenIfExists : CreationCollisionOption = CreationCollisionOption ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for CreationCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CreationCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CreationCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.CreationCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAccessMode ( pub i32 ) ; impl FileAccessMode { pub const Read : FileAccessMode = FileAccessMode ( 0i32 ) ; pub const ReadWrite : FileAccessMode = FileAccessMode ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for FileAccessMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAccessMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAccessMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAccessMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct FileAttributes ( pub u32 ) ; impl FileAttributes { pub const Normal : FileAttributes = FileAttributes ( 0u32 ) ; pub const ReadOnly : FileAttributes = FileAttributes ( 1u32 ) ; pub const Directory : FileAttributes = FileAttributes ( 16u32 ) ; pub const Archive : FileAttributes = FileAttributes ( 32u32 ) ; pub const Temporary : FileAttributes = FileAttributes ( 256u32 ) ; pub const LocallyIncomplete : FileAttributes = FileAttributes ( 512u32 ) ; } impl :: std :: convert :: From < u32 > for FileAttributes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for FileAttributes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for FileAttributes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileAttributes;u4)" ) ; } impl :: std :: ops :: BitOr for FileAttributes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for FileAttributes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for FileAttributes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for FileAttributes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for FileAttributes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl < > IStorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fa3f6186-4214-428c-a64c-14c9ac7315ea}" ) ; } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IUnknown { fn from ( value : IStorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IUnknown { fn from ( value : & IStorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile > for :: windows :: IInspectable { fn from ( value : IStorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile > for :: windows :: IInspectable { fn from ( value : & IStorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : IStorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & IStorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , destinationfolder : :: windows :: RawPtr , desirednewname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFile2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFile2 { type Vtable = IStorageFile2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2504936399 ,2679 ,17147 , [ 183 ,119 ,194 ,237 ,88 ,165 ,46 ,68 ] , ) ; } impl < > IStorageFile2 { pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFile2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{954e4bcf-0a77-42fb-b777-c2ed58a52e44}" ) ; } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IUnknown { fn from ( value : IStorageFile2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IUnknown { fn from ( value : & IStorageFile2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFile2 > for :: windows :: IInspectable { fn from ( value : IStorageFile2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFile2 > for :: windows :: IInspectable { fn from ( value : & IStorageFile2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFile2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFile2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , accessmode : FileAccessMode , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , options : StorageOpenOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFilePropertiesWithAvailability ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFilePropertiesWithAvailability { type Vtable = IStorageFilePropertiesWithAvailability_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2949365403 ,22571 ,16691 , [ 150 ,72 ,228 ,76 ,164 ,110 ,228 ,145 ] , ) ; } impl < > IStorageFilePropertiesWithAvailability { pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFilePropertiesWithAvailability { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{afcbbe9b-582b-4133-9648-e44ca46ee491}" ) ; } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IUnknown { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : IStorageFilePropertiesWithAvailability ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFilePropertiesWithAvailability > for :: windows :: IInspectable { fn from ( value : & IStorageFilePropertiesWithAvailability ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFilePropertiesWithAvailability { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFilePropertiesWithAvailability_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics { type Vtable = IStorageFileStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1501873936 ,56050 ,17352 , [ 139 ,180 ,164 ,211 ,234 ,207 ,208 ,63 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , uri : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , datarequested : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , displaynamewithextension : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , filetoreplace : :: windows :: RawPtr , uri : :: windows :: RawPtr , thumbnail : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileStatics2 { type Vtable = IStorageFileStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1551280001 ,8494 ,19193 , [ 143 ,4 ,116 ,12 ,174 ,16 ,137 ,116 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFileStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl < > IStorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b}" ) ; } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IUnknown { fn from ( value : IStorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IUnknown { fn from ( value : & IStorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder > for :: windows :: IInspectable { fn from ( value : IStorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder > for :: windows :: IInspectable { fn from ( value : & IStorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , options : CreationCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolder2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder2 { type Vtable = IStorageFolder2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3894929593 ,2265 ,19086 , [ 160 ,172 ,254 ,94 ,211 ,203 ,187 ,211 ] , ) ; } impl < > IStorageFolder2 { pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolder2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e827e8b9-08d9-4a8e-a0ac-fe5ed3cbbbd3}" ) ; } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : IStorageFolder2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IUnknown { fn from ( value : & IStorageFolder2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : IStorageFolder2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolder2 > for :: windows :: IInspectable { fn from ( value : & IStorageFolder2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolder2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , name : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolder3 { type Vtable = IStorageFolder3_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2673965209 ,48609 ,16676 , [ 174 ,179 ,176 ,106 ,217 ,111 ,152 ,212 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolder3_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics { type Vtable = IStorageFolderStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 150153215 ,34261 ,18617 , [ 174 ,233 ,40 ,81 ,30 ,51 ,159 ,159 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderStatics2 { type Vtable = IStorageFolderStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3026546115 ,29138 ,18045 , [ 139 ,41 ,55 ,31 ,15 ,98 ,191 ,111 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , user : :: windows :: RawPtr , path : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem { type Vtable = IStorageItem_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1107798422 ,51759 ,17143 , [ 189 ,232 ,139 ,16 ,69 ,122 ,127 ,48 ] , ) ; } impl < > IStorageItem { pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = self ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4207a996-ca2f-42f7-bde8-8b10457a7f30}" ) ; } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IUnknown { fn from ( value : IStorageItem ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IUnknown { fn from ( value : & IStorageItem ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem > for :: windows :: IInspectable { fn from ( value : IStorageItem ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem > for :: windows :: IInspectable { fn from ( value : & IStorageItem ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , desiredname : :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > , option : NameCollisionOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , option : StorageDeleteOption , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut FileAttributes ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , r#type : StorageItemTypes , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItem2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItem2 { type Vtable = IStorageItem2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1408837330 ,2108 ,17027 , [ 180 ,91 ,129 ,192 ,7 ,35 ,126 ,68 ] , ) ; } impl < > IStorageItem2 { pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItem2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{53f926d2-083c-4283-b45b-81c007237e44}" ) ; } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IUnknown { fn from ( value : IStorageItem2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IUnknown { fn from ( value : & IStorageItem2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItem2 > for :: windows :: IInspectable { fn from ( value : IStorageItem2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItem2 > for :: windows :: IInspectable { fn from ( value : & IStorageItem2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : IStorageItem2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItem2 > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItem2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & IStorageItem2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItem2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , item : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties { type Vtable = IStorageItemProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2254849144 ,32809 ,18174 , [ 167 ,137 ,28 ,47 ,62 ,47 ,251 ,92 ] , ) ; } impl < > IStorageItemProperties { pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = self ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{86664478-8029-46fe-a789-1c2f3e2ffb5c}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemProperties2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemProperties2 { type Vtable = IStorageItemProperties2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2391189841 ,1209 ,19410 , [ 146 ,157 ,254 ,243 ,247 ,22 ,33 ,208 ] , ) ; } impl < > IStorageItemProperties2 { pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemProperties2 { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{8e86a951-04b9-4bd2-929d-fef3f71621d0}" ) ; } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : IStorageItemProperties2 ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IUnknown { fn from ( value : & IStorageItemProperties2 ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : IStorageItemProperties2 ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemProperties2 > for :: windows :: IInspectable { fn from ( value : & IStorageItemProperties2 ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemProperties2 > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemProperties2 ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemProperties2 { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemProperties2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemPropertiesWithProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemPropertiesWithProvider { type Vtable = IStorageItemPropertiesWithProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2249978779 ,25448 ,19950 , [ 180 ,14 ,116 ,104 ,74 ,92 ,231 ,20 ] , ) ; } impl < > IStorageItemPropertiesWithProvider { pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = self ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemPropertiesWithProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{861bf39b-6368-4dee-b40e-74684a5ce714}" ) ; } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IUnknown { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : IStorageItemPropertiesWithProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemPropertiesWithProvider > for :: windows :: IInspectable { fn from ( value : & IStorageItemPropertiesWithProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IStorageItemPropertiesWithProvider > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & IStorageItemPropertiesWithProvider ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & IStorageItemPropertiesWithProvider { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemPropertiesWithProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageLibraryChangeTracker ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{9e157316-6073-44f6-9681-7492d1286c90}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e705eed4-d478-47d6-ba46-1a8ebe114a20}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageStreamTransaction_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct NameCollisionOption ( pub i32 ) ; impl NameCollisionOption { pub const GenerateUniqueName : NameCollisionOption = NameCollisionOption ( 0i32 ) ; pub const ReplaceExisting : NameCollisionOption = NameCollisionOption ( 1i32 ) ; pub const FailIfExists : NameCollisionOption = NameCollisionOption ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for NameCollisionOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for NameCollisionOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for NameCollisionOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.NameCollisionOption;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageDeleteOption ( pub i32 ) ; impl StorageDeleteOption { pub const Default : StorageDeleteOption = StorageDeleteOption ( 0i32 ) ; pub const PermanentDelete : StorageDeleteOption = StorageDeleteOption ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for StorageDeleteOption { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageDeleteOption { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageDeleteOption { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageDeleteOption;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFile ( :: windows :: IInspectable ) ; impl StorageFile { pub fn FileType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn OpenAsync < > ( & self , accessmode : FileAccessMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn CopyOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CopyAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultNameAndOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , > ( & self , destinationfolder : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveOverload < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFolder > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , destinationfolder : Param0 , desirednewname : Param1 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , destinationfolder . into_param ( ) . abi ( ) , desirednewname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn MoveAndReplaceAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , > ( & self , filetoreplace : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn OpenWithOptionsAsync < > ( & self , accessmode : FileAccessMode , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , accessmode , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStream > > ( result__ ) } } pub fn OpenTransactedWriteWithOptionsAsync < > ( & self , options : StorageOpenOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > { let this = & :: windows :: Interface :: cast :: < IStorageFile2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageStreamTransaction > > ( result__ ) } } pub fn IsAvailable < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageFilePropertiesWithAvailability > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > { let this = & :: windows :: Interface :: cast :: < Streams:: IInputStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IInputStream > > ( result__ ) } } pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > { let this = & :: windows :: Interface :: cast :: < Streams:: IRandomAccessStreamReference > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Streams:: IRandomAccessStreamWithContentType > > ( result__ ) } } pub fn GetFileFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromApplicationUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , > ( uri : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , StreamedFileDataRequestedHandler > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , datarequested : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , datarequested . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn CreateStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( displaynamewithextension : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , displaynamewithextension . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn ReplaceWithStreamedFileFromUriAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageFile > , Param1 : :: windows :: IntoParam < 'a , super::Foundation:: Uri > , Param2 : :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > , > ( filetoreplace : Param0 , uri : Param1 , thumbnail : Param2 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , filetoreplace . into_param ( ) . abi ( ) , uri . into_param ( ) . abi ( ) , thumbnail . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn GetFileFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { Self :: IStorageFileStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } ) } pub fn IStorageFileStatics < R , F : FnOnce ( & IStorageFileStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFileStatics2 < R , F : FnOnce ( & IStorageFileStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFile , IStorageFileStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFile { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFile;{fa3f6186-4214-428c-a64c-14c9ac7315ea})" ) ; } unsafe impl :: windows :: Interface for StorageFile { type Vtable = IStorageFile_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4198457734 ,16916 ,17036 , [ 166 ,76 ,20 ,201 ,172 ,115 ,21 ,234 ] , ) ; } impl :: windows :: RuntimeName for StorageFile { const NAME : & 'static str ="Windows.Storage.StorageFile" ; } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IUnknown { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IUnknown { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFile > for :: windows :: IInspectable { fn from ( value : StorageFile ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFile > for :: windows :: IInspectable { fn from ( value : & StorageFile ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFile > for IStorageFile { fn from ( value : StorageFile ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFile > for IStorageFile { fn from ( value : & StorageFile ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFile > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFile2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFile2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFile2 > { :: std :: convert :: TryInto :: < IStorageFile2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageFilePropertiesWithAvailability { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFilePropertiesWithAvailability > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFilePropertiesWithAvailability > { :: std :: convert :: TryInto :: < IStorageFilePropertiesWithAvailability > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IInputStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IInputStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IInputStreamReference > { :: std :: convert :: TryInto :: < Streams:: IInputStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : StorageFile ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFile > for Streams:: IRandomAccessStreamReference { type Error = :: windows :: Error ; fn try_from ( value : & StorageFile ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Streams:: IRandomAccessStreamReference > for & StorageFile { fn into_param ( self ) -> :: windows :: Param < 'a , Streams:: IRandomAccessStreamReference > { :: std :: convert :: TryInto :: < Streams:: IRandomAccessStreamReference > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageFolder ( :: windows :: IInspectable ) ; impl StorageFolder { pub fn CreateFileAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn CreateFolderAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn CreateFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , options : CreationCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetFileAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFile > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFile > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFile > > ( result__ ) } } pub fn GetFolderAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn GetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultOptionsStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsyncOverloadDefaultStartAndCount < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn TryGetItemAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , name : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < IStorageItem > > { let this = & :: windows :: Interface :: cast :: < IStorageFolder2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < IStorageItem > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , name . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < IStorageItem > > ( result__ ) } } pub fn RenameAsyncOverloadDefaultOptions < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn RenameAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( & self , desiredname : Param0 , option : NameCollisionOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , desiredname . into_param ( ) . abi ( ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsyncOverloadDefaultOptions < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn DeleteAsync < > ( & self , option : StorageDeleteOption , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , option , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn GetBasicPropertiesAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: BasicProperties > > ( result__ ) } } pub fn Name < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Path < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Attributes < > ( & self , ) -> :: windows :: Result < FileAttributes > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < FileAttributes as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileAttributes > ( result__ ) } } pub fn DateCreated < > ( & self , ) -> :: windows :: Result < super::Foundation:: DateTime > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: DateTime > ( result__ ) } } pub fn IsOfType < > ( & self , r#type : StorageItemTypes , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , r#type , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetParentAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } } pub fn IsEqual < 'a , Param0 : :: windows :: IntoParam < 'a , IStorageItem > , > ( & self , item : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IStorageItem2 > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , item . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn DisplayName < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn FolderRelativeId < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Properties < > ( & self , ) -> :: windows :: Result < FileProperties:: StorageItemContentProperties > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties > ( self ) ? ; unsafe { let mut result__ : < FileProperties:: StorageItemContentProperties as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < FileProperties:: StorageItemContentProperties > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultSizeDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , mode , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsyncOverloadDefaultOptions < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn GetScaledImageAsThumbnailAsync < > ( & self , mode : FileProperties:: ThumbnailMode , requestedsize : u32 , options : FileProperties:: ThumbnailOptions , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > { let this = & :: windows :: Interface :: cast :: < IStorageItemProperties2 > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , mode , requestedsize , options , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < FileProperties:: StorageItemThumbnail > > ( result__ ) } } pub fn Provider < > ( & self , ) -> :: windows :: Result < StorageProvider > { let this = & :: windows :: Interface :: cast :: < IStorageItemPropertiesWithProvider > ( self ) ? ; unsafe { let mut result__ : < StorageProvider as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageProvider > ( result__ ) } } pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < Search:: IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFileQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageFolderQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < Search:: StorageItemQueryResult > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < Search:: StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Search:: StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : Search:: CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : Search:: CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < super::Foundation::Collections:: IVectorView :: < IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , Search:: QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : Search:: CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : Search:: CommonFileQuery , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Search:: IStorageFolderQueryOperations > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetFolderFromPathAsync < 'a , Param0 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( path : Param0 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn TryGetChangeTracker < > ( & self , ) -> :: windows :: Result < StorageLibraryChangeTracker > { let this = & :: windows :: Interface :: cast :: < IStorageFolder3 > ( self ) ? ; unsafe { let mut result__ : < StorageLibraryChangeTracker as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageLibraryChangeTracker > ( result__ ) } } pub fn GetFolderFromPathForUserAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::System:: User > , Param1 : :: windows :: IntoParam < 'a , :: windows :: HSTRING > , > ( user : Param0 , path : Param1 , ) -> :: windows :: Result < super::Foundation:: IAsyncOperation :: < StorageFolder > > { Self :: IStorageFolderStatics2 ( | this | unsafe { let mut result__ : < super::Foundation:: IAsyncOperation :: < StorageFolder > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , user . into_param ( ) . abi ( ) , path . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncOperation :: < StorageFolder > > ( result__ ) } ) } pub fn IStorageFolderStatics < R , F : FnOnce ( & IStorageFolderStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IStorageFolderStatics2 < R , F : FnOnce ( & IStorageFolderStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < StorageFolder , IStorageFolderStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for StorageFolder { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageFolder;{72d1cb78-b3ef-4f75-a80b-6fd9dae2944b})" ) ; } unsafe impl :: windows :: Interface for StorageFolder { type Vtable = IStorageFolder_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1926351736 ,46063 ,20341 , [ 168 ,11 ,111 ,217 ,218 ,226 ,148 ,75 ] , ) ; } impl :: windows :: RuntimeName for StorageFolder { const NAME : & 'static str ="Windows.Storage.StorageFolder" ; } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IUnknown { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IUnknown { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageFolder > for :: windows :: IInspectable { fn from ( value : StorageFolder ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageFolder > for :: windows :: IInspectable { fn from ( value : & StorageFolder ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageFolder > for IStorageFolder { fn from ( value : StorageFolder ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageFolder > for IStorageFolder { fn from ( value : & StorageFolder ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStorageFolder > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageFolder2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageFolder2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageFolder2 > { :: std :: convert :: TryInto :: < IStorageFolder2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem > { :: std :: convert :: TryInto :: < IStorageItem > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItem2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItem2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItem2 > { :: std :: convert :: TryInto :: < IStorageItem2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties > { :: std :: convert :: TryInto :: < IStorageItemProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemProperties2 { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemProperties2 > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemProperties2 > { :: std :: convert :: TryInto :: < IStorageItemProperties2 > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for IStorageItemPropertiesWithProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemPropertiesWithProvider > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemPropertiesWithProvider > { :: std :: convert :: TryInto :: < IStorageItemPropertiesWithProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : StorageFolder ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageFolder > for Search:: IStorageFolderQueryOperations { type Error = :: windows :: Error ; fn try_from ( value : & StorageFolder ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , Search:: IStorageFolderQueryOperations > for & StorageFolder { fn into_param ( self ) -> :: windows :: Param < 'a , Search:: IStorageFolderQueryOperations > { :: std :: convert :: TryInto :: < Search:: IStorageFolderQueryOperations > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageItemTypes ( pub u32 ) ; impl StorageItemTypes { pub const None : StorageItemTypes = StorageItemTypes ( 0u32 ) ; pub const File : StorageItemTypes = StorageItemTypes ( 1u32 ) ; pub const Folder : StorageItemTypes = StorageItemTypes ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageItemTypes { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageItemTypes { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageItemTypes { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageItemTypes;u4)" ) ; } impl :: std :: ops :: BitOr for StorageItemTypes { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageItemTypes { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageItemTypes { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageItemTypes { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageItemTypes { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageLibraryChangeTracker ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageLibraryChangeTracker { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2652205846 ,24691 ,17654 , [ 150 ,129 ,116 ,146 ,209 ,40 ,108 ,144 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageLibraryChangeTracker { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageLibraryChangeTracker;{9e157316-6073-44f6-9681-7492d1286c90})" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct StorageOpenOptions ( pub u32 ) ; impl StorageOpenOptions { pub const None : StorageOpenOptions = StorageOpenOptions ( 0u32 ) ; pub const AllowOnlyReaders : StorageOpenOptions = StorageOpenOptions ( 1u32 ) ; pub const AllowReadersAndWriters : StorageOpenOptions = StorageOpenOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for StorageOpenOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for StorageOpenOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for StorageOpenOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.StorageOpenOptions;u4)" ) ; } impl :: std :: ops :: BitOr for StorageOpenOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for StorageOpenOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for StorageOpenOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for StorageOpenOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for StorageOpenOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageProvider ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageProvider { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3875925716 ,54392 ,18390 , [ 186 ,70 ,26 ,142 ,190 ,17 ,74 ,32 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageProvider;{e705eed4-d478-47d6-ba46-1a8ebe114a20})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageStreamTransaction ( :: windows :: IInspectable ) ; impl StorageStreamTransaction { pub fn Stream < > ( & self , ) -> :: windows :: Result < Streams:: IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < Streams:: IRandomAccessStream > ( result__ ) } } pub fn CommitAsync < > ( & self , ) -> :: windows :: Result < super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Foundation:: IAsyncAction > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl :: windows :: RuntimeType for StorageStreamTransaction { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StorageStreamTransaction;{f67cf363-a53d-4d94-ae2c-67232d93acdd})" ) ; } unsafe impl :: windows :: Interface for StorageStreamTransaction { type Vtable = IStorageStreamTransaction_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4135383907 ,42301 ,19860 , [ 174 ,44 ,103 ,35 ,45 ,147 ,172 ,221 ] , ) ; } impl :: windows :: RuntimeName for StorageStreamTransaction { const NAME : & 'static str ="Windows.Storage.StorageStreamTransaction" ; } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : StorageStreamTransaction ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IUnknown { fn from ( value : & StorageStreamTransaction ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : StorageStreamTransaction ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageStreamTransaction > for :: windows :: IInspectable { fn from ( value : & StorageStreamTransaction ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageStreamTransaction ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageStreamTransaction > for super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageStreamTransaction ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Foundation:: IClosable > for & StorageStreamTransaction { fn into_param ( self ) -> :: windows :: Param < 'a , super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequest ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StreamedFileDataRequest { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } unsafe impl :: windows :: RuntimeType for StreamedFileDataRequest { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.StreamedFileDataRequest;{905a0fe6-bc53-11df-8c49-001e4fc686da})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StreamedFileDataRequestedHandler ( :: windows :: IUnknown , ) where ; impl < > StreamedFileDataRequestedHandler { pub fn new < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = StreamedFileDataRequestedHandler_box :: < F > { vtable : & StreamedFileDataRequestedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , Param0 : :: windows :: IntoParam < 'a , StreamedFileDataRequest > , > ( & self , stream : Param0 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: std :: mem :: transmute_copy ( this ) , stream . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for StreamedFileDataRequestedHandler { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({fef6a824-2fe1-4d07-a35b-b77c50b5f4cc})" ) ; } unsafe impl < > :: windows :: Interface for StreamedFileDataRequestedHandler { type Vtable = StreamedFileDataRequestedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4277577764 ,12257 ,19719 , [ 163 ,91 ,183 ,124 ,80 ,181 ,244 ,204 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct StreamedFileDataRequestedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct StreamedFileDataRequestedHandler_box < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const StreamedFileDataRequestedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( & :: std :: option :: Option < StreamedFileDataRequest > ) -> :: windows :: Result < ( ) > + 'static > StreamedFileDataRequestedHandler_box :: < F > { const VTABLE : StreamedFileDataRequestedHandler_abi = StreamedFileDataRequestedHandler_abi ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , ) ; unsafe extern "system" fn QueryInterface ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; * interface = if iid == & < StreamedFileDataRequestedHandler as :: windows :: Interface > :: IID || iid == & < :: windows :: IUnknown as :: windows :: Interface > :: IID || iid == & < :: windows :: IAgileObject as :: windows :: Interface > :: IID { & mut ( * this ) . vtable as * mut _ as _ } else { :: std :: ptr :: null_mut ( ) } ; if ( * interface ) . is_null ( ) { :: windows :: HRESULT ( 0x8000_4002 ) } else { ( * this ) . count . add_ref ( ) ; :: windows :: HRESULT ( 0 ) } } unsafe extern "system" fn AddRef ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( * this ) . count . add_ref ( ) } unsafe extern "system" fn Release ( this : :: windows :: RawPtr ) -> u32 { let this = this as * mut :: windows :: RawPtr as * mut Self ; let remaining = ( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( this : :: windows :: RawPtr , stream : :: windows :: RawPtr ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & stream as * const < StreamedFileDataRequest as :: windows :: Abi > :: Abi as * const < StreamedFileDataRequest as :: windows :: Abi > :: DefaultType ) , ) . into ( ) } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileProperties { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct BasicProperties ( :: windows :: IInspectable ) ; impl BasicProperties { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn DateModified < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn ItemDate < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: DateTime > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = & :: windows :: Interface :: cast :: < IStorageItemExtraProperties > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for BasicProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.BasicProperties;{d05d55db-785e-4a66-be02-9beec58aea81})" ) ; } unsafe impl :: windows :: Interface for BasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } impl :: windows :: RuntimeName for BasicProperties { const NAME : & 'static str ="Windows.Storage.FileProperties.BasicProperties" ; } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IUnknown { fn from ( value : BasicProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IUnknown { fn from ( value : & BasicProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < BasicProperties > for :: windows :: IInspectable { fn from ( value : BasicProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & BasicProperties > for :: windows :: IInspectable { fn from ( value : & BasicProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : BasicProperties ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & BasicProperties > for IStorageItemExtraProperties { type Error = :: windows :: Error ; fn try_from ( value : & BasicProperties ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStorageItemExtraProperties > for & BasicProperties { fn into_param ( self ) -> :: windows :: Param < 'a , IStorageItemExtraProperties > { :: std :: convert :: TryInto :: < IStorageItemExtraProperties > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IBasicProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBasicProperties { type Vtable = IBasicProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3495777755 ,30814 ,19046 , [ 190 ,2 ,155 ,238 ,197 ,138 ,234 ,129 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBasicProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: DateTime ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemContentProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{05294bad-bc38-48bf-85d7-770e0e2ae0ba}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageItemExtraProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemExtraProperties { type Vtable = IStorageItemExtraProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3309527474 ,21709 ,17195 , [ 189 ,188 ,75 ,25 ,196 ,180 ,112 ,215 ] , ) ; } impl < > IStorageItemExtraProperties { pub fn RetrievePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < :: windows :: HSTRING > > , > ( & self , propertiestoretrieve : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestoretrieve . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IMap :: < :: windows :: HSTRING , :: windows :: IInspectable > > > ( result__ ) } } pub fn SavePropertiesAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < super::super::Foundation::Collections:: IKeyValuePair :: < :: windows :: HSTRING , :: windows :: IInspectable > > > , > ( & self , propertiestosave : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , propertiestosave . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } pub fn SavePropertiesAsyncOverloadDefault < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncAction > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncAction as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncAction > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageItemExtraProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c54361b2-54cd-432b-bdbc-4b19c4b470d7}" ) ; } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : IStorageItemExtraProperties ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IUnknown { fn from ( value : & IStorageItemExtraProperties ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : IStorageItemExtraProperties ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageItemExtraProperties > for :: windows :: IInspectable { fn from ( value : & IStorageItemExtraProperties ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageItemExtraProperties { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageItemExtraProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestoretrieve : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , propertiestosave : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IThumbnailProperties { type Vtable = IThumbnailProperties_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1765659695 ,56295 ,18869 , [ 179 ,179 ,40 ,147 ,172 ,93 ,52 ,35 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IThumbnailProperties_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut ThumbnailType ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemContentProperties ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemContentProperties { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 86592429 ,48184 ,18623 , [ 133 ,215 ,119 ,14 ,14 ,42 ,224 ,186 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemContentProperties { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemContentProperties;{05294bad-bc38-48bf-85d7-770e0e2ae0ba})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StorageItemThumbnail ( :: windows :: IInspectable ) ; impl StorageItemThumbnail { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn OriginalWidth < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn OriginalHeight < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn ReturnedSmallerCachedSize < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < ThumbnailType > { let this = & :: windows :: Interface :: cast :: < IThumbnailProperties > ( self ) ? ; unsafe { let mut result__ : < ThumbnailType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < ThumbnailType > ( result__ ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : super::Streams:: InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < super::Streams:: IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , super::Streams:: IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IInputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < super::Streams:: IOutputStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < super::Streams:: IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < super::Streams:: IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < super::Streams:: IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::Streams:: IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < super::Streams:: IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StorageItemThumbnail { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.FileProperties.StorageItemThumbnail;{cc254827-4b3d-438f-9232-10c76bc7e038})" ) ; } unsafe impl :: windows :: Interface for StorageItemThumbnail { type Vtable = super::Streams:: IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl :: windows :: RuntimeName for StorageItemThumbnail { const NAME : & 'static str ="Windows.Storage.FileProperties.StorageItemThumbnail" ; } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IUnknown { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : StorageItemThumbnail ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for :: windows :: IInspectable { fn from ( value : & StorageItemThumbnail ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : StorageItemThumbnail ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & StorageItemThumbnail > for super::Streams:: IRandomAccessStreamWithContentType { fn from ( value : & StorageItemThumbnail ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStreamWithContentType > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStreamWithContentType > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < super::Streams:: IRandomAccessStreamWithContentType > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IContentTypeProvider > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IContentTypeProvider > { :: std :: convert :: TryInto :: < super::Streams:: IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IInputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IInputStream > { :: std :: convert :: TryInto :: < super::Streams:: IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IOutputStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IOutputStream > { :: std :: convert :: TryInto :: < super::Streams:: IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : StorageItemThumbnail ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & StorageItemThumbnail > for super::Streams:: IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & StorageItemThumbnail ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::Streams:: IRandomAccessStream > for & StorageItemThumbnail { fn into_param ( self ) -> :: windows :: Param < 'a , super::Streams:: IRandomAccessStream > { :: std :: convert :: TryInto :: < super::Streams:: IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailMode ( pub i32 ) ; impl ThumbnailMode { pub const PicturesView : ThumbnailMode = ThumbnailMode ( 0i32 ) ; pub const VideosView : ThumbnailMode = ThumbnailMode ( 1i32 ) ; pub const MusicView : ThumbnailMode = ThumbnailMode ( 2i32 ) ; pub const DocumentsView : ThumbnailMode = ThumbnailMode ( 3i32 ) ; pub const ListView : ThumbnailMode = ThumbnailMode ( 4i32 ) ; pub const SingleItem : ThumbnailMode = ThumbnailMode ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailMode { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailMode { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailMode { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailMode;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailOptions ( pub u32 ) ; impl ThumbnailOptions { pub const None : ThumbnailOptions = ThumbnailOptions ( 0u32 ) ; pub const ReturnOnlyIfCached : ThumbnailOptions = ThumbnailOptions ( 1u32 ) ; pub const ResizeThumbnail : ThumbnailOptions = ThumbnailOptions ( 2u32 ) ; pub const UseCurrentScale : ThumbnailOptions = ThumbnailOptions ( 4u32 ) ; } impl :: std :: convert :: From < u32 > for ThumbnailOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailOptions;u4)" ) ; } impl :: std :: ops :: BitOr for ThumbnailOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for ThumbnailOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for ThumbnailOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for ThumbnailOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for ThumbnailOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct ThumbnailType ( pub i32 ) ; impl ThumbnailType { pub const Image : ThumbnailType = ThumbnailType ( 0i32 ) ; pub const Icon : ThumbnailType = ThumbnailType ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for ThumbnailType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for ThumbnailType { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for ThumbnailType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.FileProperties.ThumbnailType;i4)" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Search { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFileQuery ( pub i32 ) ; impl CommonFileQuery { pub const DefaultQuery : CommonFileQuery = CommonFileQuery ( 0i32 ) ; pub const OrderByName : CommonFileQuery = CommonFileQuery ( 1i32 ) ; pub const OrderByTitle : CommonFileQuery = CommonFileQuery ( 2i32 ) ; pub const OrderByMusicProperties : CommonFileQuery = CommonFileQuery ( 3i32 ) ; pub const OrderBySearchRank : CommonFileQuery = CommonFileQuery ( 4i32 ) ; pub const OrderByDate : CommonFileQuery = CommonFileQuery ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFileQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFileQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFileQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFileQuery;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct CommonFolderQuery ( pub i32 ) ; impl CommonFolderQuery { pub const DefaultQuery : CommonFolderQuery = CommonFolderQuery ( 0i32 ) ; pub const GroupByYear : CommonFolderQuery = CommonFolderQuery ( 100i32 ) ; pub const GroupByMonth : CommonFolderQuery = CommonFolderQuery ( 101i32 ) ; pub const GroupByArtist : CommonFolderQuery = CommonFolderQuery ( 102i32 ) ; pub const GroupByAlbum : CommonFolderQuery = CommonFolderQuery ( 103i32 ) ; pub const GroupByAlbumArtist : CommonFolderQuery = CommonFolderQuery ( 104i32 ) ; pub const GroupByComposer : CommonFolderQuery = CommonFolderQuery ( 105i32 ) ; pub const GroupByGenre : CommonFolderQuery = CommonFolderQuery ( 106i32 ) ; pub const GroupByPublishedYear : CommonFolderQuery = CommonFolderQuery ( 107i32 ) ; pub const GroupByRating : CommonFolderQuery = CommonFolderQuery ( 108i32 ) ; pub const GroupByTag : CommonFolderQuery = CommonFolderQuery ( 109i32 ) ; pub const GroupByAuthor : CommonFolderQuery = CommonFolderQuery ( 110i32 ) ; pub const GroupByType : CommonFolderQuery = CommonFolderQuery ( 111i32 ) ; } impl :: std :: convert :: From < i32 > for CommonFolderQuery { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for CommonFolderQuery { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for CommonFolderQuery { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.CommonFolderQuery;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IQueryOptions ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IQueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IQueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{1e5e46ee-0f45-4838-a8e9-d0479d446c30}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFileQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{52fda447-2baa-412c-b29f-d4b1778efa1e}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IStorageFolderQueryOperations ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryOperations { type Vtable = IStorageFolderQueryOperations_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3410218185 ,17515 ,19023 , [ 190 ,151 ,117 ,119 ,113 ,190 ,82 ,3 ] , ) ; } impl < > IStorageFolderQueryOperations { pub fn GetIndexedStateAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IndexedState > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IndexedState > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IndexedState > > ( result__ ) } } pub fn CreateFileQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQuery < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFileQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFileQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFileQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFileQueryResult > ( result__ ) } } pub fn CreateFolderQueryOverloadDefault < > ( & self , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQuery < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateFolderQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageFolderQueryResult > { let this = self ; unsafe { let mut result__ : < StorageFolderQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageFolderQueryResult > ( result__ ) } } pub fn CreateItemQuery < > ( & self , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn CreateItemQueryWithOptions < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < StorageItemQueryResult > { let this = self ; unsafe { let mut result__ : < StorageItemQueryResult as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < StorageItemQueryResult > ( result__ ) } } pub fn GetFilesAsync < > ( & self , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFilesAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFile > > > ( result__ ) } } pub fn GetFoldersAsync < > ( & self , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: std :: mem :: transmute_copy ( this ) , query , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetFoldersAsyncOverloadDefaultStartAndCount < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: StorageFolder > > > ( result__ ) } } pub fn GetItemsAsync < > ( & self , startindex : u32 , maxitemstoretrieve : u32 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: std :: mem :: transmute_copy ( this ) , startindex , maxitemstoretrieve , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < super:: IStorageItem > > > ( result__ ) } } pub fn AreQueryOptionsSupported < 'a , Param0 : :: windows :: IntoParam < 'a , QueryOptions > , > ( & self , queryoptions : Param0 , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: std :: mem :: transmute_copy ( this ) , queryoptions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFolderQuerySupported < > ( & self , query : CommonFolderQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn IsCommonFileQuerySupported < > ( & self , query : CommonFileQuery , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: std :: mem :: transmute_copy ( this ) , query , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryOperations { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cb43ccc9-446b-4a4f-be97-757771be5203}" ) ; } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : IStorageFolderQueryOperations ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IUnknown { fn from ( value : & IStorageFolderQueryOperations ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : IStorageFolderQueryOperations ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IStorageFolderQueryOperations > for :: windows :: IInspectable { fn from ( value : & IStorageFolderQueryOperations ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IStorageFolderQueryOperations { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryOperations_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , startindex : u32 , maxitemstoretrieve : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , queryoptions : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFolderQuery , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , query : CommonFileQuery , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageFolderQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{6654c911-7d66-46fa-aecf-e4a4baa93ab8}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IStorageItemQueryResult ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IStorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{e8948079-9d58-47b8-b2b2-41b07f4795f9}" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct IndexedState ( pub i32 ) ; impl IndexedState { pub const Unknown : IndexedState = IndexedState ( 0i32 ) ; pub const NotIndexed : IndexedState = IndexedState ( 1i32 ) ; pub const PartiallyIndexed : IndexedState = IndexedState ( 2i32 ) ; pub const FullyIndexed : IndexedState = IndexedState ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for IndexedState { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for IndexedState { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for IndexedState { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Search.IndexedState;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct QueryOptions ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for QueryOptions { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 509495022 ,3909 ,18488 , [ 168 ,233 ,208 ,71 ,157 ,68 ,108 ,48 ] , ) ; } unsafe impl :: windows :: RuntimeType for QueryOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.QueryOptions;{1e5e46ee-0f45-4838-a8e9-d0479d446c30})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFileQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFileQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1392354375 ,11178 ,16684 , [ 178 ,159 ,212 ,177 ,119 ,142 ,250 ,30 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFileQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFileQueryResult;{52fda447-2baa-412c-b29f-d4b1778efa1e})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageFolderQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageFolderQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1716832529 ,32102 ,18170 , [ 174 ,207 ,228 ,164 ,186 ,169 ,58 ,184 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageFolderQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageFolderQueryResult;{6654c911-7d66-46fa-aecf-e4a4baa93ab8})" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct StorageItemQueryResult ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for StorageItemQueryResult { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3902046329 ,40280 ,18360 , [ 178 ,178 ,65 ,176 ,127 ,71 ,149 ,249 ] , ) ; } unsafe impl :: windows :: RuntimeType for StorageItemQueryResult { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Storage.Search.StorageItemQueryResult;{e8948079-9d58-47b8-b2b2-41b07f4795f9})" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Streams { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IBuffer { type Vtable = IBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821408 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IBuffer { pub fn Capacity < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Length < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetLength < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IBuffer { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe0-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IUnknown { fn from ( value : IBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IUnknown { fn from ( value : & IBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IBuffer > for :: windows :: IInspectable { fn from ( value : IBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IBuffer > for :: windows :: IInspectable { fn from ( value : & IBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IContentTypeProvider ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IContentTypeProvider { type Vtable = IContentTypeProvider_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2547030181 ,15257 ,19945 , [ 136 ,165 ,225 ,29 ,47 ,80 ,199 ,149 ] , ) ; } impl < > IContentTypeProvider { pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = self ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IContentTypeProvider { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{97d098a5-3b99-4de9-88a5-e11d2f50c795}" ) ; } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : IContentTypeProvider ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IUnknown { fn from ( value : & IContentTypeProvider ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : IContentTypeProvider ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IContentTypeProvider > for :: windows :: IInspectable { fn from ( value : & IContentTypeProvider ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IContentTypeProvider { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IContentTypeProvider_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: std :: mem :: ManuallyDrop < :: windows :: HSTRING > ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStream { type Vtable = IInputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821410 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IInputStream { pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe2-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IUnknown { fn from ( value : IInputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IUnknown { fn from ( value : & IInputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStream > for :: windows :: IInspectable { fn from ( value : IInputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStream > for :: windows :: IInspectable { fn from ( value : & IInputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IInputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IInputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IInputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IInputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , count : u32 , options : InputStreamOptions , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IInputStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IInputStreamReference { type Vtable = IInputStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1133681944 ,24265 ,19290 , [ 145 ,156 ,66 ,5 ,176 ,200 ,4 ,182 ] , ) ; } impl < > IInputStreamReference { pub fn OpenSequentialReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IInputStream > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IInputStream > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IInputStream > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IInputStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{43929d18-5ec9-4b5a-919c-4205b0c804b6}" ) ; } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IUnknown { fn from ( value : IInputStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IUnknown { fn from ( value : & IInputStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IInputStreamReference > for :: windows :: IInspectable { fn from ( value : IInputStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IInputStreamReference > for :: windows :: IInspectable { fn from ( value : & IInputStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IInputStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IInputStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IOutputStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IOutputStream { type Vtable = IOutputStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821414 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IOutputStream { pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IOutputStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe6-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IUnknown { fn from ( value : IOutputStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IUnknown { fn from ( value : & IOutputStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IOutputStream > for :: windows :: IInspectable { fn from ( value : IOutputStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IOutputStream > for :: windows :: IInspectable { fn from ( value : & IOutputStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IOutputStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IOutputStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IOutputStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IOutputStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IOutputStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , buffer : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStream ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStream { type Vtable = IRandomAccessStream_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2421821409 ,48211 ,4575 , [ 140 ,73 ,0 ,30 ,79 ,198 ,134 ,218 ] , ) ; } impl < > IRandomAccessStream { pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = self ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = self ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = self ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = self ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStream { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{905a0fe1-bc53-11df-8c49-001e4fc686da}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : IRandomAccessStream ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStream ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : IRandomAccessStream ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStream > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStream ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStream ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStream > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStream ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStream { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStream_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : u64 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamReference { type Vtable = IRandomAccessStreamReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 871248180 ,7638 ,20026 , [ 128 ,103 ,209 ,193 ,98 ,232 ,100 ,43 ] , ) ; } impl < > IRandomAccessStreamReference { pub fn OpenReadAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < IRandomAccessStreamWithContentType > > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamReference { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{33ee3134-1dd6-4e3a-8067-d1c162e8642b}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamReference ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamReference ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamReference > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IRandomAccessStreamWithContentType ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IRandomAccessStreamWithContentType { type Vtable = IRandomAccessStreamWithContentType_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3424995367 ,19261 ,17295 , [ 146 ,50 ,16 ,199 ,107 ,199 ,224 ,56 ] , ) ; } impl < > IRandomAccessStreamWithContentType { pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < super::super::Foundation:: IClosable > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , ) . ok ( ) } } pub fn ContentType < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IContentTypeProvider > ( self ) ? ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn ReadAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , count : u32 , options : InputStreamOptions , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > { let this = & :: windows :: Interface :: cast :: < IInputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , count , options , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < IBuffer , u32 > > ( result__ ) } } pub fn WriteAsync < 'a , Param0 : :: windows :: IntoParam < 'a , IBuffer > , > ( & self , buffer : Param0 , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , buffer . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperationWithProgress :: < u32 , u32 > > ( result__ ) } } pub fn FlushAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < bool > > { let this = & :: windows :: Interface :: cast :: < IOutputStream > ( self ) ? ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < bool > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < bool > > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn SetSize < > ( & self , value : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: std :: mem :: transmute_copy ( this ) , value , ) . ok ( ) } } pub fn GetInputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IInputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IInputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IInputStream > ( result__ ) } } pub fn GetOutputStreamAt < > ( & self , position : u64 , ) -> :: windows :: Result < IOutputStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IOutputStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: std :: mem :: transmute_copy ( this ) , position , & mut result__ ) . from_abi :: < IOutputStream > ( result__ ) } } pub fn Position < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn Seek < > ( & self , position : u64 , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: std :: mem :: transmute_copy ( this ) , position , ) . ok ( ) } } pub fn CloneStream < > ( & self , ) -> :: windows :: Result < IRandomAccessStream > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < IRandomAccessStream as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < IRandomAccessStream > ( result__ ) } } pub fn CanRead < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CanWrite < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IRandomAccessStream > ( self ) ? ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: std :: mem :: transmute_copy ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IRandomAccessStreamWithContentType { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{cc254827-4b3d-438f-9232-10c76bc7e038}" ) ; } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IUnknown { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IUnknown > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IUnknown > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < :: windows :: IUnknown > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : IRandomAccessStreamWithContentType ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IRandomAccessStreamWithContentType > for :: windows :: IInspectable { fn from ( value : & IRandomAccessStreamWithContentType ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for super::super::Foundation:: IClosable { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , super::super::Foundation:: IClosable > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , super::super::Foundation:: IClosable > { :: std :: convert :: TryInto :: < super::super::Foundation:: IClosable > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IContentTypeProvider { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IContentTypeProvider > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IContentTypeProvider > { :: std :: convert :: TryInto :: < IContentTypeProvider > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IInputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IInputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IInputStream > { :: std :: convert :: TryInto :: < IInputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IOutputStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IOutputStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IOutputStream > { :: std :: convert :: TryInto :: < IOutputStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } impl < > :: std :: convert :: TryFrom < IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: std :: convert :: TryFrom :: try_from ( & value ) } } impl < > :: std :: convert :: TryFrom < & IRandomAccessStreamWithContentType > for IRandomAccessStream { type Error = :: windows :: Error ; fn try_from ( value : & IRandomAccessStreamWithContentType ) -> :: windows :: Result < Self > { :: windows :: Interface :: cast ( value ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: windows :: IntoParam :: into_param ( & self ) } } impl < 'a , > :: windows :: IntoParam < 'a , IRandomAccessStream > for & IRandomAccessStreamWithContentType { fn into_param ( self ) -> :: windows :: Param < 'a , IRandomAccessStream > { :: std :: convert :: TryInto :: < IRandomAccessStream > :: try_into ( self ) . map ( :: windows :: Param :: Owned ) . unwrap_or ( :: windows :: Param :: None ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IRandomAccessStreamWithContentType_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , ) where ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct InputStreamOptions ( pub u32 ) ; impl InputStreamOptions { pub const None : InputStreamOptions = InputStreamOptions ( 0u32 ) ; pub const Partial : InputStreamOptions = InputStreamOptions ( 1u32 ) ; pub const ReadAhead : InputStreamOptions = InputStreamOptions ( 2u32 ) ; } impl :: std :: convert :: From < u32 > for InputStreamOptions { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for InputStreamOptions { type Abi = Self ; type DefaultType = Self ; } unsafe impl :: windows :: RuntimeType for InputStreamOptions { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Storage.Streams.InputStreamOptions;u4)" ) ; } impl :: std :: ops :: BitOr for InputStreamOptions { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for InputStreamOptions { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for InputStreamOptions { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for InputStreamOptions { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } impl :: std :: ops :: Not for InputStreamOptions { type Output = Self ; fn not ( self ) -> Self { Self ( self . 0 . not ( ) ) } } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IUser ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IUser { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl < > :: windows :: RuntimeType for IUser { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{df9a26c6-e746-4bcd-b5d4-120103c4209b}" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct User ( :: windows :: IInspectable ) ; unsafe impl :: windows :: Interface for User { type Vtable = < :: windows :: IUnknown as :: windows :: Interface > :: Vtable ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3751421638 ,59206 ,19405 , [ 181 ,212 ,18 ,1 ,3 ,196 ,32 ,155 ] , ) ; } unsafe impl :: windows :: RuntimeType for User { const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.System.User;{df9a26c6-e746-4bcd-b5d4-120103c4209b})" ) ; } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/win_ocr_bindings-6e1ac750950c780f/out/windows.rs:1:15544 [INFO] [stdout] | [INFO] [stdout] 1 | ...( * this ) . count . release ( ) ; if remaining == 0 { Box :: from_raw ( this ) ; } remaining } unsafe extern "system" fn Invoke ( thi... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [WARN] too much data in the log, truncating it