[INFO] cloning repository https://github.com/loribao/rust-for-windows-GeoLocation [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/loribao/rust-for-windows-GeoLocation" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floribao%2Frust-for-windows-GeoLocation", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floribao%2Frust-for-windows-GeoLocation'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d8d0ce6d9cc680249a2f918270a8afde9096bb60 [INFO] checking loribao/rust-for-windows-GeoLocation against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floribao%2Frust-for-windows-GeoLocation" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/loribao/rust-for-windows-GeoLocation on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/loribao/rust-for-windows-GeoLocation [INFO] finished tweaking git repo https://github.com/loribao/rust-for-windows-GeoLocation [INFO] tweaked toml for git repo https://github.com/loribao/rust-for-windows-GeoLocation written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/loribao/rust-for-windows-GeoLocation already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded windows_macros v0.13.0 [INFO] [stderr] Downloaded const-sha1 v0.2.0 [INFO] [stderr] Downloaded windows v0.13.0 [INFO] [stderr] Downloaded windows_gen v0.13.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cd6dacfda857fa9e8aa7e343148e55599b3e72cfad4403fab10d405048fe73b5 [INFO] running `Command { std: "docker" "start" "-a" "cd6dacfda857fa9e8aa7e343148e55599b3e72cfad4403fab10d405048fe73b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cd6dacfda857fa9e8aa7e343148e55599b3e72cfad4403fab10d405048fe73b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cd6dacfda857fa9e8aa7e343148e55599b3e72cfad4403fab10d405048fe73b5", kill_on_drop: false }` [INFO] [stdout] cd6dacfda857fa9e8aa7e343148e55599b3e72cfad4403fab10d405048fe73b5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2554cd4772bc6f5ee65ea8bafe23313e4f8e4239303e22d7b7b66767c066fe68 [INFO] running `Command { std: "docker" "start" "-a" "2554cd4772bc6f5ee65ea8bafe23313e4f8e4239303e22d7b7b66767c066fe68", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.27 [INFO] [stderr] Compiling syn v1.0.73 [INFO] [stderr] Compiling windows_gen v0.13.0 [INFO] [stderr] Compiling const-sha1 v0.2.0 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling windows_macros v0.13.0 [INFO] [stderr] Compiling windows v0.13.0 [INFO] [stderr] Compiling bindings v0.1.0 (/opt/rustwide/workdir/bindings) [INFO] [stdout] warning: unexpected `cfg` condition value: `deprecated` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bindings-ef6b335ffce25611/out/windows.rs:1:23848 [INFO] [stdout] | [INFO] [stdout] 1 | ...ctable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `deprecated` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `deprecated` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bindings-ef6b335ffce25611/out/windows.rs:1:24210 [INFO] [stdout] | [INFO] [stdout] 1 | ...abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 >... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `deprecated` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `deprecated` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bindings-ef6b335ffce25611/out/windows.rs:1:24573 [INFO] [stdout] | [INFO] [stdout] 1 | ...abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & self , ) -> :: windows :: Result < super:... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `deprecated` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [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/bindings-ef6b335ffce25611/out/windows.rs:1:146826 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:152307 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:157959 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:163216 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:169554 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:176059 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:185590 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:190307 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [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/bindings-ef6b335ffce25611/out/windows.rs:1:379649 [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 Devices { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Geolocation { # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct AltitudeReferenceSystem ( pub i32 ) ; impl AltitudeReferenceSystem { pub const Unspecified : AltitudeReferenceSystem = AltitudeReferenceSystem ( 0i32 ) ; pub const Terrain : AltitudeReferenceSystem = AltitudeReferenceSystem ( 1i32 ) ; pub const Ellipsoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 2i32 ) ; pub const Geoid : AltitudeReferenceSystem = AltitudeReferenceSystem ( 3i32 ) ; pub const Surface : AltitudeReferenceSystem = AltitudeReferenceSystem ( 4i32 ) ; } impl :: std :: convert :: From < i32 > for AltitudeReferenceSystem { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for AltitudeReferenceSystem { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for AltitudeReferenceSystem { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct BasicGeoposition { pub Latitude : f64 , pub Longitude : f64 , pub Altitude : f64 } impl BasicGeoposition { } impl :: std :: default :: Default for BasicGeoposition { fn default ( ) -> Self { Self { Latitude : 0.0 , Longitude : 0.0 , Altitude : 0.0 } } } impl :: std :: fmt :: Debug for BasicGeoposition { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "BasicGeoposition" ) . field ( "Latitude" , & format_args ! ( "{:?}" , self . Latitude ) ) . field ( "Longitude" , & format_args ! ( "{:?}" , self . Longitude ) ) . field ( "Altitude" , & format_args ! ( "{:?}" , self . Altitude ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for BasicGeoposition { fn eq ( & self , other : & Self ) -> bool { self . Latitude == other . Latitude && self . Longitude == other . Longitude && self . Altitude == other . Altitude } } impl :: std :: cmp :: Eq for BasicGeoposition { } unsafe impl :: windows :: Abi for BasicGeoposition { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for BasicGeoposition { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct CivicAddress ( :: windows :: IInspectable ) ; impl CivicAddress { pub fn Country < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn State < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn City < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn PostalCode < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for CivicAddress { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})" ) ; } unsafe impl :: windows :: Interface for CivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } impl :: windows :: RuntimeName for CivicAddress { const NAME : & 'static str ="Windows.Devices.Geolocation.CivicAddress" ; } impl < > :: std :: convert :: From < CivicAddress > for :: windows :: IInspectable { fn from ( value : CivicAddress ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & CivicAddress > for :: windows :: IInspectable { fn from ( value : & CivicAddress ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a CivicAddress { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for CivicAddress { } unsafe impl :: std :: marker :: Sync for CivicAddress { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeoboundingBox ( :: windows :: IInspectable ) ; impl GeoboundingBox { pub fn NorthwestCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn SoutheastCorner < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn MinAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn MaxAltitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( northwestcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , southeastcorner : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxFactory ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , northwestcorner . into_param ( ) . abi ( ) , southeastcorner . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryCompute < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn TryComputeWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < GeoboundingBox > { Self :: IGeoboundingBoxStatics ( | this | unsafe { let mut result__ : < GeoboundingBox as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altituderefsystem , spatialreferenceid , & mut result__ ) . from_abi :: < GeoboundingBox > ( result__ ) } ) } pub fn IGeoboundingBoxFactory < R , F : FnOnce ( & IGeoboundingBoxFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeoboundingBoxStatics < R , F : FnOnce ( & IGeoboundingBoxStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeoboundingBox , IGeoboundingBoxStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeoboundingBox { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})" ) ; } unsafe impl :: windows :: Interface for GeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } impl :: windows :: RuntimeName for GeoboundingBox { const NAME : & 'static str ="Windows.Devices.Geolocation.GeoboundingBox" ; } impl < > :: std :: convert :: From < GeoboundingBox > for :: windows :: IInspectable { fn from ( value : GeoboundingBox ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeoboundingBox > for :: windows :: IInspectable { fn from ( value : & GeoboundingBox ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < GeoboundingBox > for IGeoshape { fn from ( value : GeoboundingBox ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & GeoboundingBox > for IGeoshape { fn from ( value : & GeoboundingBox ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a GeoboundingBox { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for GeoboundingBox { } unsafe impl :: std :: marker :: Sync for GeoboundingBox { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocircle ( :: windows :: IInspectable ) ; impl Geocircle { pub fn Center < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn Radius < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geocircle > { Self :: IGeocircleFactory ( | this | unsafe { let mut result__ : < Geocircle as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , radius , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geocircle > ( result__ ) } ) } pub fn IGeocircleFactory < R , F : FnOnce ( & IGeocircleFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geocircle , IGeocircleFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geocircle { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})" ) ; } unsafe impl :: windows :: Interface for Geocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } impl :: windows :: RuntimeName for Geocircle { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocircle" ; } impl < > :: std :: convert :: From < Geocircle > for :: windows :: IInspectable { fn from ( value : Geocircle ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocircle > for :: windows :: IInspectable { fn from ( value : & Geocircle ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geocircle > for IGeoshape { fn from ( value : Geocircle ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geocircle > for IGeoshape { fn from ( value : & Geocircle ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geocircle { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geocircle { } unsafe impl :: std :: marker :: Sync for Geocircle { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geocoordinate ( :: windows :: IInspectable ) ; impl Geocoordinate { # [ cfg ( feature = "deprecated" ) ] pub fn Latitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Longitude < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } # [ cfg ( feature = "deprecated" ) ] pub fn Altitude < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Accuracy < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn AltitudeAccuracy < > ( & 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 ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Heading < > ( & 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 ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Speed < > ( & 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 ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn Timestamp < > ( & 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 ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } pub fn Point < > ( & self , ) -> :: windows :: Result < Geopoint > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPoint > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } } pub fn PositionSource < > ( & self , ) -> :: windows :: Result < PositionSource > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PositionSource as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionSource > ( result__ ) } } pub fn SatelliteData < > ( & self , ) -> :: windows :: Result < GeocoordinateSatelliteData > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionData > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeocoordinateSatelliteData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeocoordinateSatelliteData > ( result__ ) } } pub fn PositionSourceTimestamp < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > { let this = & :: windows :: Interface :: cast :: < IGeocoordinateWithPositionSourceTimestamp > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < super::super::Foundation:: DateTime > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geocoordinate { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})" ) ; } unsafe impl :: windows :: Interface for Geocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } impl :: windows :: RuntimeName for Geocoordinate { const NAME : & 'static str ="Windows.Devices.Geolocation.Geocoordinate" ; } impl < > :: std :: convert :: From < Geocoordinate > for :: windows :: IInspectable { fn from ( value : Geocoordinate ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geocoordinate > for :: windows :: IInspectable { fn from ( value : & Geocoordinate ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geocoordinate { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geocoordinate { } unsafe impl :: std :: marker :: Sync for Geocoordinate { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeocoordinateSatelliteData ( :: windows :: IInspectable ) ; impl GeocoordinateSatelliteData { pub fn PositionDilutionOfPrecision < > ( & 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 ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn HorizontalDilutionOfPrecision < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } pub fn VerticalDilutionOfPrecision < > ( & 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 ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < f64 > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeocoordinateSatelliteData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})" ) ; } unsafe impl :: windows :: Interface for GeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } impl :: windows :: RuntimeName for GeocoordinateSatelliteData { const NAME : & 'static str ="Windows.Devices.Geolocation.GeocoordinateSatelliteData" ; } impl < > :: std :: convert :: From < GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : GeocoordinateSatelliteData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeocoordinateSatelliteData > for :: windows :: IInspectable { fn from ( value : & GeocoordinateSatelliteData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeocoordinateSatelliteData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeocoordinateSatelliteData { } unsafe impl :: std :: marker :: Sync for GeocoordinateSatelliteData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeolocationAccessStatus ( pub i32 ) ; impl GeolocationAccessStatus { pub const Unspecified : GeolocationAccessStatus = GeolocationAccessStatus ( 0i32 ) ; pub const Allowed : GeolocationAccessStatus = GeolocationAccessStatus ( 1i32 ) ; pub const Denied : GeolocationAccessStatus = GeolocationAccessStatus ( 2i32 ) ; } impl :: std :: convert :: From < i32 > for GeolocationAccessStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeolocationAccessStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeolocationAccessStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geolocator ( :: windows :: IInspectable ) ; impl Geolocator { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn DesiredAccuracy < > ( & self , ) -> :: windows :: Result < PositionAccuracy > { let this = self ; unsafe { let mut result__ : < PositionAccuracy as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionAccuracy > ( result__ ) } } pub fn SetDesiredAccuracy < > ( & self , value : PositionAccuracy , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn MovementThreshold < > ( & self , ) -> :: windows :: Result < f64 > { let this = self ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn SetMovementThreshold < > ( & self , value : f64 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn ReportInterval < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn SetReportInterval < > ( & self , value : u32 , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn LocationStatus < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } pub fn GetGeopositionAsync < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn GetGeopositionAsyncWithAgeAndTimeout < 'a , > ( & self , maximumage : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , timeout : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , maximumage . into_param ( ) . abi ( ) , timeout . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geoposition > > ( result__ ) } } pub fn PositionChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , PositionChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemovePositionChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn StatusChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < Geolocator , StatusChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveStatusChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn DesiredAccuracyInMeters < > ( & self , ) -> :: windows :: Result < super::super::Foundation:: IReference :: < u32 > > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < super::super::Foundation:: IReference :: < u32 > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < u32 > > ( result__ ) } } pub fn SetDesiredAccuracyInMeters < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < u32 > > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocatorWithScalarAccuracy > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn RequestAccessAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < GeolocationAccessStatus > > ( result__ ) } ) } pub fn GetGeopositionHistoryAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn GetGeopositionHistoryWithDurationAsync < 'a , > ( starttime : impl :: windows :: IntoParam < 'a , super::super::Foundation:: DateTime > , duration : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TimeSpan > , ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > { Self :: IGeolocatorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , starttime . into_param ( ) . abi ( ) , duration . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < super::super::Foundation::Collections:: IVectorView :: < Geoposition > > > ( result__ ) } ) } pub fn AllowFallbackToConsentlessPositions < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IGeolocator2 > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn IsDefaultGeopositionRecommended < > ( ) -> :: windows :: Result < bool > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn SetDefaultGeoposition < 'a , > ( value : impl :: windows :: IntoParam < 'a , super::super::Foundation:: IReference :: < BasicGeoposition > > , ) -> :: windows :: Result < ( ) > { Self :: IGeolocatorStatics2 ( | this | unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , ) . ok ( ) } ) } pub fn DefaultGeoposition < > ( ) -> :: windows :: Result < super::super::Foundation:: IReference :: < BasicGeoposition > > { Self :: IGeolocatorStatics2 ( | this | unsafe { let mut result__ : < super::super::Foundation:: IReference :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IReference :: < BasicGeoposition > > ( result__ ) } ) } pub fn IGeolocatorStatics < R , F : FnOnce ( & IGeolocatorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn IGeolocatorStatics2 < R , F : FnOnce ( & IGeolocatorStatics2 ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geolocator , IGeolocatorStatics2 > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geolocator { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" ) ; } unsafe impl :: windows :: Interface for Geolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } impl :: windows :: RuntimeName for Geolocator { const NAME : & 'static str ="Windows.Devices.Geolocation.Geolocator" ; } impl < > :: std :: convert :: From < Geolocator > for :: windows :: IInspectable { fn from ( value : Geolocator ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geolocator > for :: windows :: IInspectable { fn from ( value : & Geolocator ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geolocator { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geolocator { } unsafe impl :: std :: marker :: Sync for Geolocator { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopath ( :: windows :: IInspectable ) ; impl Geopath { pub fn Positions < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < BasicGeoposition > > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceAndSpatialReference < 'a , > ( positions : impl :: windows :: IntoParam < 'a , super::super::Foundation::Collections:: IIterable :: < BasicGeoposition > > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopath > { Self :: IGeopathFactory ( | this | unsafe { let mut result__ : < Geopath as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , positions . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopath > ( result__ ) } ) } pub fn IGeopathFactory < R , F : FnOnce ( & IGeopathFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopath , IGeopathFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopath { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})" ) ; } unsafe impl :: windows :: Interface for Geopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } impl :: windows :: RuntimeName for Geopath { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopath" ; } impl < > :: std :: convert :: From < Geopath > for :: windows :: IInspectable { fn from ( value : Geopath ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopath > for :: windows :: IInspectable { fn from ( value : & Geopath ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopath > for IGeoshape { fn from ( value : Geopath ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopath > for IGeoshape { fn from ( value : & Geopath ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopath { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopath { } unsafe impl :: std :: marker :: Sync for Geopath { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geopoint ( :: windows :: IInspectable ) ; impl Geopoint { pub fn Position < > ( & self , ) -> :: windows :: Result < BasicGeoposition > { let this = self ; unsafe { let mut result__ : < BasicGeoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < BasicGeoposition > ( result__ ) } } pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = & :: windows :: Interface :: cast :: < IGeoshape > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } pub fn Create < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystem < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId < 'a , > ( position : impl :: windows :: IntoParam < 'a , BasicGeoposition > , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : u32 , ) -> :: windows :: Result < Geopoint > { Self :: IGeopointFactory ( | this | unsafe { let mut result__ : < Geopoint as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , position . into_param ( ) . abi ( ) , altitudereferencesystem , spatialreferenceid , & mut result__ ) . from_abi :: < Geopoint > ( result__ ) } ) } pub fn IGeopointFactory < R , F : FnOnce ( & IGeopointFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Geopoint , IGeopointFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Geopoint { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})" ) ; } unsafe impl :: windows :: Interface for Geopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } impl :: windows :: RuntimeName for Geopoint { const NAME : & 'static str ="Windows.Devices.Geolocation.Geopoint" ; } impl < > :: std :: convert :: From < Geopoint > for :: windows :: IInspectable { fn from ( value : Geopoint ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geopoint > for :: windows :: IInspectable { fn from ( value : & Geopoint ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Geopoint > for IGeoshape { fn from ( value : Geopoint ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Geopoint > for IGeoshape { fn from ( value : & Geopoint ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IGeoshape > for & 'a Geopoint { fn into_param ( self ) -> :: windows :: Param < 'a , IGeoshape > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IGeoshape > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Geopoint { } unsafe impl :: std :: marker :: Sync for Geopoint { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geoposition ( :: windows :: IInspectable ) ; impl Geoposition { pub fn Coordinate < > ( & self , ) -> :: windows :: Result < Geocoordinate > { let this = self ; unsafe { let mut result__ : < Geocoordinate as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geocoordinate > ( result__ ) } } pub fn CivicAddress < > ( & self , ) -> :: windows :: Result < CivicAddress > { let this = self ; unsafe { let mut result__ : < CivicAddress as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < CivicAddress > ( result__ ) } } pub fn VenueData < > ( & self , ) -> :: windows :: Result < VenueData > { let this = & :: windows :: Interface :: cast :: < IGeoposition2 > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < VenueData as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VenueData > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geoposition { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})" ) ; } unsafe impl :: windows :: Interface for Geoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } impl :: windows :: RuntimeName for Geoposition { const NAME : & 'static str ="Windows.Devices.Geolocation.Geoposition" ; } impl < > :: std :: convert :: From < Geoposition > for :: windows :: IInspectable { fn from ( value : Geoposition ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geoposition > for :: windows :: IInspectable { fn from ( value : & Geoposition ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geoposition { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geoposition { } unsafe impl :: std :: marker :: Sync for Geoposition { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct GeoshapeType ( pub i32 ) ; impl GeoshapeType { pub const Geopoint : GeoshapeType = GeoshapeType ( 0i32 ) ; pub const Geocircle : GeoshapeType = GeoshapeType ( 1i32 ) ; pub const Geopath : GeoshapeType = GeoshapeType ( 2i32 ) ; pub const GeoboundingBox : GeoshapeType = GeoshapeType ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for GeoshapeType { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for GeoshapeType { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for GeoshapeType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct Geovisit ( :: windows :: IInspectable ) ; impl Geovisit { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } pub fn StateChange < > ( & self , ) -> :: windows :: Result < VisitStateChange > { let this = self ; unsafe { let mut result__ : < VisitStateChange as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitStateChange > ( result__ ) } } pub fn Timestamp < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: DateTime > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for Geovisit { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})" ) ; } unsafe impl :: windows :: Interface for Geovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } impl :: windows :: RuntimeName for Geovisit { const NAME : & 'static str ="Windows.Devices.Geolocation.Geovisit" ; } impl < > :: std :: convert :: From < Geovisit > for :: windows :: IInspectable { fn from ( value : Geovisit ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Geovisit > for :: windows :: IInspectable { fn from ( value : & Geovisit ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Geovisit { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for Geovisit { } unsafe impl :: std :: marker :: Sync for Geovisit { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitMonitor ( :: windows :: IInspectable ) ; impl GeovisitMonitor { pub fn new ( ) -> :: windows :: Result < Self > { Self :: IActivationFactory ( | f | f . activate_instance :: < Self > ( ) ) } fn IActivationFactory < R , F : FnOnce ( & :: windows :: IActivationFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , :: windows :: IActivationFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } pub fn MonitoringScope < > ( & self , ) -> :: windows :: Result < VisitMonitoringScope > { let this = self ; unsafe { let mut result__ : < VisitMonitoringScope as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < VisitMonitoringScope > ( result__ ) } } pub fn Start < > ( & self , value : VisitMonitoringScope , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , ) . ok ( ) } } pub fn Stop < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn VisitStateChanged < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , super::super::Foundation:: TypedEventHandler :: < GeovisitMonitor , GeovisitStateChangedEventArgs > > , ) -> :: windows :: Result < super::super::Foundation:: EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < super::super::Foundation:: EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < super::super::Foundation:: EventRegistrationToken > ( result__ ) } } pub fn RemoveVisitStateChanged < 'a , > ( & self , token : impl :: windows :: IntoParam < 'a , super::super::Foundation:: EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , token . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn GetLastReportAsync < > ( ) -> :: windows :: Result < super::super::Foundation:: IAsyncOperation :: < Geovisit > > { Self :: IGeovisitMonitorStatics ( | this | unsafe { let mut result__ : < super::super::Foundation:: IAsyncOperation :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation:: IAsyncOperation :: < Geovisit > > ( result__ ) } ) } pub fn IGeovisitMonitorStatics < R , F : FnOnce ( & IGeovisitMonitorStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GeovisitMonitor , IGeovisitMonitorStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for GeovisitMonitor { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})" ) ; } unsafe impl :: windows :: Interface for GeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } impl :: windows :: RuntimeName for GeovisitMonitor { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitMonitor" ; } impl < > :: std :: convert :: From < GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : GeovisitMonitor ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitMonitor > for :: windows :: IInspectable { fn from ( value : & GeovisitMonitor ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitMonitor { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitMonitor { } unsafe impl :: std :: marker :: Sync for GeovisitMonitor { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitStateChangedEventArgs ( :: windows :: IInspectable ) ; impl GeovisitStateChangedEventArgs { pub fn Visit < > ( & self , ) -> :: windows :: Result < Geovisit > { let this = self ; unsafe { let mut result__ : < Geovisit as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geovisit > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitStateChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})" ) ; } unsafe impl :: windows :: Interface for GeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } impl :: windows :: RuntimeName for GeovisitStateChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitStateChangedEventArgs" ; } impl < > :: std :: convert :: From < GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : GeovisitStateChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitStateChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & GeovisitStateChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitStateChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitStateChangedEventArgs { } unsafe impl :: std :: marker :: Sync for GeovisitStateChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct GeovisitTriggerDetails ( :: windows :: IInspectable ) ; impl GeovisitTriggerDetails { pub fn ReadReports < > ( & self , ) -> :: windows :: Result < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > { let this = self ; unsafe { let mut result__ : < super::super::Foundation::Collections:: IVectorView :: < Geovisit > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < super::super::Foundation::Collections:: IVectorView :: < Geovisit > > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for GeovisitTriggerDetails { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})" ) ; } unsafe impl :: windows :: Interface for GeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } impl :: windows :: RuntimeName for GeovisitTriggerDetails { const NAME : & 'static str ="Windows.Devices.Geolocation.GeovisitTriggerDetails" ; } impl < > :: std :: convert :: From < GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : GeovisitTriggerDetails ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & GeovisitTriggerDetails > for :: windows :: IInspectable { fn from ( value : & GeovisitTriggerDetails ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a GeovisitTriggerDetails { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for GeovisitTriggerDetails { } unsafe impl :: std :: marker :: Sync for GeovisitTriggerDetails { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct ICivicAddress ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for ICivicAddress { type Vtable = ICivicAddress_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2824239642 ,25844 ,19784 , [ 188 ,234 ,246 ,176 ,8 ,236 ,163 ,76 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct ICivicAddress_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: 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 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 IGeoboundingBox ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBox { type Vtable = IGeoboundingBox_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 144099339 ,10063 ,17370 , [ 154 ,6 ,203 ,252 ,218 ,235 ,78 ,194 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBox_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut BasicGeoposition ) -> :: 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 , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxFactory { type Vtable = IGeoboundingBoxFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1308337545 ,1041 ,19132 , [ 179 ,181 ,91 ,188 ,203 ,87 ,217 ,140 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , northwestcorner : BasicGeoposition , southeastcorner : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoboundingBoxStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoboundingBoxStatics { type Vtable = IGeoboundingBoxStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1740113672 ,58906 ,19664 , [ 132 ,27 ,147 ,35 ,55 ,146 ,181 ,202 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoboundingBoxStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altituderefsystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocircle ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircle { type Vtable = IGeocircle_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 971266115 ,43001 ,20067 , [ 146 ,167 ,186 ,12 ,40 ,209 ,36 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircle_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut f64 ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocircleFactory { type Vtable = IGeocircleFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2950058783 ,29361 ,20349 , [ 135 ,204 ,78 ,212 ,201 ,132 ,156 ,5 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocircleFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , radius : f64 , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeocoordinate ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinate { type Vtable = IGeocoordinate_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3995181994 ,38762 ,19568 , [ 128 ,61 ,8 ,62 ,165 ,91 ,203 ,196 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinate_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 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 :: windows :: RawPtr ) -> :: 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 :: 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 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 IGeocoordinateSatelliteData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateSatelliteData { type Vtable = IGeocoordinateSatelliteData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3274339545 ,9736 ,18252 , [ 145 ,44 ,6 ,221 ,73 ,15 ,74 ,247 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateSatelliteData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPoint { type Vtable = IGeocoordinateWithPoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4276749605 ,53804 ,19782 , [ 181 ,39 ,11 ,150 ,6 ,111 ,199 ,219 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeocoordinateWithPositionData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionData { type Vtable = IGeocoordinateWithPositionData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2514891966 ,56278 ,16556 , [ 184 ,242 ,166 ,92 ,3 ,64 ,217 ,166 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionSource ) -> :: 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 IGeocoordinateWithPositionSourceTimestamp ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeocoordinateWithPositionSourceTimestamp { type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2235825154 ,51697 ,17936 , [ 175 ,224 ,139 ,195 ,166 ,168 ,112 ,54 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeocoordinateWithPositionSourceTimestamp_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeolocator ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator { type Vtable = IGeolocator_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2848178018 ,17700 ,18825 , [ 138 ,169 ,222 ,1 ,157 ,46 ,85 ,31 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : PositionAccuracy ) -> :: 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 u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut PositionStatus ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , maximumage : super::super::Foundation:: TimeSpan , timeout : super::super::Foundation:: TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeolocator2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocator2 { type Vtable = IGeolocator2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3518246509 ,34961 ,17332 , [ 173 ,54 ,39 ,198 ,254 ,154 ,151 ,177 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocator2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics { type Vtable = IGeolocatorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2593027441 ,11765 ,17809 , [ 159 ,135 ,235 ,95 ,216 ,148 ,233 ,183 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , starttime : super::super::Foundation:: DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , starttime : super::super::Foundation:: DateTime , duration : super::super::Foundation:: TimeSpan , 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 IGeolocatorStatics2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorStatics2 { type Vtable = IGeolocatorStatics2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2570064290 ,64028 ,17969 , [ 167 ,29 ,13 ,190 ,177 ,37 ,13 ,156 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorStatics2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: 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 IGeolocatorWithScalarAccuracy ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeolocatorWithScalarAccuracy { type Vtable = IGeolocatorWithScalarAccuracy_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2532692929 ,47119 ,17930 , [ 153 ,77 ,169 ,108 ,71 ,165 ,26 ,164 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeolocatorWithScalarAccuracy_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopath ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopath { type Vtable = IGeopath_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3846166457 ,11684 ,18196 , [ 166 ,82 ,222 ,133 ,147 ,40 ,152 ,152 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopath_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeopathFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopathFactory { type Vtable = IGeopathFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 666806728 ,51175 ,17241 , [ 155 ,155 ,252 ,163 ,224 ,94 ,245 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopathFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , positions : :: windows :: RawPtr , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeopoint ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopoint { type Vtable = IGeopoint_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1811546347 ,58734 ,18875 , [ 156 ,175 ,203 ,170 ,120 ,168 ,188 ,239 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopoint_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 BasicGeoposition ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeopointFactory { type Vtable = IGeopointFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3681258803 ,30397 ,20016 , [ 138 ,247 ,168 ,68 ,220 ,55 ,183 ,160 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeopointFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , position : BasicGeoposition , altitudereferencesystem : AltitudeReferenceSystem , spatialreferenceid : 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 IGeoposition ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition { type Vtable = IGeoposition_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3247244372 ,32065 ,20471 , [ 169 ,87 ,157 ,255 ,180 ,239 ,127 ,91 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeoposition2 ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoposition2 { type Vtable = IGeoposition2_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2137192087 ,34417 ,19213 , [ 134 ,248 ,71 ,74 ,132 ,150 ,24 ,124 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoposition2_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeoshape ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeoshape { type Vtable = IGeoshape_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3382485679 ,50985 ,17345 , [ 143 ,171 ,214 ,222 ,201 ,20 ,223 ,126 ] , ) ; } impl < > IGeoshape { pub fn GeoshapeType < > ( & self , ) -> :: windows :: Result < GeoshapeType > { let this = self ; unsafe { let mut result__ : < GeoshapeType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < GeoshapeType > ( result__ ) } } pub fn SpatialReferenceId < > ( & self , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn AltitudeReferenceSystem < > ( & self , ) -> :: windows :: Result < AltitudeReferenceSystem > { let this = self ; unsafe { let mut result__ : < AltitudeReferenceSystem as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AltitudeReferenceSystem > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGeoshape { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}" ) ; } impl < > :: std :: convert :: From < IGeoshape > for :: windows :: IInspectable { fn from ( value : IGeoshape ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGeoshape > for :: windows :: IInspectable { fn from ( value : & IGeoshape ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGeoshape { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeoshape_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 GeoshapeType ) -> :: 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 AltitudeReferenceSystem ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisit ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisit { type Vtable = IGeovisit_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2978445942 ,40694 ,16811 , [ 160 ,221 ,121 ,62 ,206 ,118 ,226 ,222 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisit_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitStateChange ) -> :: 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 IGeovisitMonitor ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitor { type Vtable = IGeovisitMonitor_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 2148633263 ,22852 ,17809 , [ 131 ,193 ,57 ,102 ,71 ,245 ,79 ,44 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitor_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : VisitMonitoringScope ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , handler : :: windows :: RawPtr , result__ : * mut super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , token : super::super::Foundation:: EventRegistrationToken ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitMonitorStatics { type Vtable = IGeovisitMonitorStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3170465447 ,48114 ,19677 , [ 149 ,207 ,85 ,76 ,130 ,237 ,251 ,135 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitMonitorStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitStateChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitStateChangedEventArgs { type Vtable = IGeovisitStateChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3467956735 ,35667 ,18792 , [ 190 ,237 ,76 ,236 ,208 ,41 ,206 ,21 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitStateChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IGeovisitTriggerDetails ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGeovisitTriggerDetails { type Vtable = IGeovisitTriggerDetails_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3933670814 ,53705 ,17739 , [ 153 ,183 ,178 ,248 ,205 ,210 ,72 ,47 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGeovisitTriggerDetails_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IPositionChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPositionChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IStatusChangedEventArgs ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IStatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IStatusChangedEventArgs_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionStatus ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] # [ doc ( hidden ) ] pub struct IVenueData ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IVenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IVenueData_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 PositionAccuracy ( pub i32 ) ; impl PositionAccuracy { pub const Default : PositionAccuracy = PositionAccuracy ( 0i32 ) ; pub const High : PositionAccuracy = PositionAccuracy ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for PositionAccuracy { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionAccuracy { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionAccuracy { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct PositionChangedEventArgs ( :: windows :: IInspectable ) ; impl PositionChangedEventArgs { pub fn Position < > ( & self , ) -> :: windows :: Result < Geoposition > { let this = self ; unsafe { let mut result__ : < Geoposition as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Geoposition > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for PositionChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})" ) ; } unsafe impl :: windows :: Interface for PositionChangedEventArgs { type Vtable = IPositionChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 931503333 ,40222 ,18117 , [ 191 ,59 ,106 ,216 ,202 ,193 ,160 ,147 ] , ) ; } impl :: windows :: RuntimeName for PositionChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.PositionChangedEventArgs" ; } impl < > :: std :: convert :: From < PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : PositionChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & PositionChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & PositionChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a PositionChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for PositionChangedEventArgs { } unsafe impl :: std :: marker :: Sync for PositionChangedEventArgs { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionSource ( pub i32 ) ; impl PositionSource { pub const Cellular : PositionSource = PositionSource ( 0i32 ) ; pub const Satellite : PositionSource = PositionSource ( 1i32 ) ; pub const WiFi : PositionSource = PositionSource ( 2i32 ) ; pub const IPAddress : PositionSource = PositionSource ( 3i32 ) ; pub const Unknown : PositionSource = PositionSource ( 4i32 ) ; pub const Default : PositionSource = PositionSource ( 5i32 ) ; pub const Obfuscated : PositionSource = PositionSource ( 6i32 ) ; } impl :: std :: convert :: From < i32 > for PositionSource { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionSource { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionSource { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionSource;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct PositionStatus ( pub i32 ) ; impl PositionStatus { pub const Ready : PositionStatus = PositionStatus ( 0i32 ) ; pub const Initializing : PositionStatus = PositionStatus ( 1i32 ) ; pub const NoData : PositionStatus = PositionStatus ( 2i32 ) ; pub const Disabled : PositionStatus = PositionStatus ( 3i32 ) ; pub const NotInitialized : PositionStatus = PositionStatus ( 4i32 ) ; pub const NotAvailable : PositionStatus = PositionStatus ( 5i32 ) ; } impl :: std :: convert :: From < i32 > for PositionStatus { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for PositionStatus { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for PositionStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.PositionStatus;i4)" ) ; } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct StatusChangedEventArgs ( :: windows :: IInspectable ) ; impl StatusChangedEventArgs { pub fn Status < > ( & self , ) -> :: windows :: Result < PositionStatus > { let this = self ; unsafe { let mut result__ : < PositionStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PositionStatus > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for StatusChangedEventArgs { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})" ) ; } unsafe impl :: windows :: Interface for StatusChangedEventArgs { type Vtable = IStatusChangedEventArgs_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 877908698 ,35987 ,16657 , [ 162 ,5 ,154 ,236 ,252 ,155 ,229 ,192 ] , ) ; } impl :: windows :: RuntimeName for StatusChangedEventArgs { const NAME : & 'static str ="Windows.Devices.Geolocation.StatusChangedEventArgs" ; } impl < > :: std :: convert :: From < StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : StatusChangedEventArgs ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & StatusChangedEventArgs > for :: windows :: IInspectable { fn from ( value : & StatusChangedEventArgs ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a StatusChangedEventArgs { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for StatusChangedEventArgs { } unsafe impl :: std :: marker :: Sync for StatusChangedEventArgs { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct VenueData ( :: windows :: IInspectable ) ; impl VenueData { pub fn Id < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn Level < > ( & 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for VenueData { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})" ) ; } unsafe impl :: windows :: Interface for VenueData { type Vtable = IVenueData_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1727238535 ,24803 ,19247 , [ 181 ,39 ,79 ,83 ,241 ,195 ,198 ,119 ] , ) ; } impl :: windows :: RuntimeName for VenueData { const NAME : & 'static str ="Windows.Devices.Geolocation.VenueData" ; } impl < > :: std :: convert :: From < VenueData > for :: windows :: IInspectable { fn from ( value : VenueData ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & VenueData > for :: windows :: IInspectable { fn from ( value : & VenueData ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a VenueData { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } unsafe impl :: std :: marker :: Send for VenueData { } unsafe impl :: std :: marker :: Sync for VenueData { } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitMonitoringScope ( pub i32 ) ; impl VisitMonitoringScope { pub const Venue : VisitMonitoringScope = VisitMonitoringScope ( 0i32 ) ; pub const City : VisitMonitoringScope = VisitMonitoringScope ( 1i32 ) ; } impl :: std :: convert :: From < i32 > for VisitMonitoringScope { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitMonitoringScope { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitMonitoringScope { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)" ) ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VisitStateChange ( pub i32 ) ; impl VisitStateChange { pub const TrackingLost : VisitStateChange = VisitStateChange ( 0i32 ) ; pub const Arrived : VisitStateChange = VisitStateChange ( 1i32 ) ; pub const Departed : VisitStateChange = VisitStateChange ( 2i32 ) ; pub const OtherMovement : VisitStateChange = VisitStateChange ( 3i32 ) ; } impl :: std :: convert :: From < i32 > for VisitStateChange { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VisitStateChange { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for VisitStateChange { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)" ) ; } } } # [ 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncAction > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for AsyncActionCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: DefaultType ) , asyncstatus , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionProgressHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionProgressHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionProgressHandler_box :: < TProgress , F > { vtable : & AsyncActionProgressHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , progressinfo . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionProgressHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{6d844858-0cff-4590-ae89-95a5a5c8b4b8}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionProgressHandler < TProgress > { type Vtable = AsyncActionProgressHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionProgressHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionProgressHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionProgressHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionProgressHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , & < TProgress as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > AsyncActionProgressHandler_box :: < TProgress , F > { const VTABLE : AsyncActionProgressHandler_abi < TProgress > = AsyncActionProgressHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionProgressHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct AsyncActionWithProgressCompletedHandler < TProgress > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; impl < TProgress : :: windows :: RuntimeType + 'static , > AsyncActionWithProgressCompletedHandler < TProgress > { pub fn new < F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { vtable : & AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncActionWithProgress < TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncActionWithProgressCompletedHandler < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9c029f91-cc84-44fd-ac26-0a6c4e555281}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for AsyncActionWithProgressCompletedHandler < TProgress > { type Vtable = AsyncActionWithProgressCompletedHandler_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct AsyncActionWithProgressCompletedHandler_abi < 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 :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct AsyncActionWithProgressCompletedHandler_box < TProgress , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > where TProgress : :: windows :: RuntimeType + 'static , { vtable : * const AsyncActionWithProgressCompletedHandler_abi < TProgress > , invoke : F , count : :: windows :: RefCount , } impl < TProgress : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < IAsyncActionWithProgress < TProgress > > , AsyncStatus ) -> :: windows :: Result < ( ) > + 'static > AsyncActionWithProgressCompletedHandler_box :: < TProgress , F > { const VTABLE : AsyncActionWithProgressCompletedHandler_abi < TProgress > = AsyncActionWithProgressCompletedHandler_abi :: < TProgress > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: 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 == & < AsyncActionWithProgressCompletedHandler < 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 < IAsyncActionWithProgress < TProgress > as :: windows :: Abi > :: Abi as * const < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperation < TResult > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationCompletedHandler < TResult > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , progressinfo : impl :: windows :: IntoParam < 'a , TProgress > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 :: RuntimeType > :: 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 :: RuntimeType > :: DefaultType ) , & * ( & progressinfo as * const < TProgress as :: windows :: Abi > :: Abi as * const < TProgress as :: windows :: RuntimeType > :: 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 , > ( & self , asyncinfo : impl :: windows :: IntoParam < 'a , IAsyncOperationWithProgress < TResult , TProgress > > , asyncstatus : AsyncStatus , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , asyncinfo . into_param ( ) . abi ( ) , asyncstatus , ) . ok ( ) } } } unsafe impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for AsyncOperationWithProgressCompletedHandler < TResult , TProgress > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: RuntimeType > :: 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 ; } unsafe impl :: windows :: RuntimeType for AsyncStatus { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.AsyncStatus;i4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct DateTime { pub UniversalTime : i64 } impl DateTime { } impl :: std :: default :: Default for DateTime { fn default ( ) -> Self { Self { UniversalTime : 0 } } } impl :: std :: fmt :: Debug for DateTime { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "DateTime" ) . field ( "UniversalTime" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for DateTime { type DefaultType = Self ; 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 Deferral ( :: windows :: IInspectable ) ; impl Deferral { pub fn Complete < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < 'a , > ( handler : impl :: windows :: IntoParam < 'a , DeferralCompletedHandler > , ) -> :: windows :: Result < Deferral > { Self :: IDeferralFactory ( | this | unsafe { let mut result__ : < Deferral as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Deferral > ( result__ ) } ) } pub fn IDeferralFactory < R , F : FnOnce ( & IDeferralFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < Deferral , IDeferralFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for Deferral { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})" ) ; } unsafe impl :: windows :: Interface for Deferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } impl :: windows :: RuntimeName for Deferral { const NAME : & 'static str ="Windows.Foundation.Deferral" ; } impl < > :: std :: convert :: From < Deferral > for :: windows :: IInspectable { fn from ( value : Deferral ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & Deferral > for :: windows :: IInspectable { fn from ( value : & Deferral ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < Deferral > for IClosable { fn from ( value : Deferral ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Deferral > for IClosable { fn from ( value : & Deferral ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a Deferral { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for Deferral { } unsafe impl :: std :: marker :: Sync for Deferral { } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct DeferralCompletedHandler ( :: windows :: IUnknown , ) where ; impl < > DeferralCompletedHandler { pub fn new < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = DeferralCompletedHandler_box :: < F > { vtable : & DeferralCompletedHandler_box :: < F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for DeferralCompletedHandler { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"delegate({ed32a372-f3c8-4faa-9cfb-470148da3888})" ) ; } unsafe impl < > :: windows :: Interface for DeferralCompletedHandler { type Vtable = DeferralCompletedHandler_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3979518834 ,62408 ,20394 , [ 156 ,251 ,71 ,1 ,72 ,218 ,56 ,136 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct DeferralCompletedHandler_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , ) -> :: windows :: HRESULT , ) where ; # [ repr ( C ) ] struct DeferralCompletedHandler_box < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > where { vtable : * const DeferralCompletedHandler_abi , invoke : F , count : :: windows :: RefCount , } impl < F : FnMut ( ) -> :: windows :: Result < ( ) > + 'static > DeferralCompletedHandler_box :: < F > { const VTABLE : DeferralCompletedHandler_abi = DeferralCompletedHandler_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 == & < DeferralCompletedHandler 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 , ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( ) . into ( ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct EventHandler < T > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; impl < T : :: windows :: RuntimeType + 'static , > EventHandler < T > { pub fn new < F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = EventHandler_box :: < T , F > { vtable : & EventHandler_box :: < T , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , args : impl :: windows :: IntoParam < 'a , T > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for EventHandler < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c535-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < T as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for EventHandler < T > { type Vtable = EventHandler_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < EventHandler < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct EventHandler_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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct EventHandler_box < T , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where T : :: windows :: RuntimeType + 'static , { vtable : * const EventHandler_abi < T > , invoke : F , count : :: windows :: RefCount , } impl < T : :: windows :: RuntimeType + 'static , F : FnMut ( & :: std :: option :: Option < :: windows :: IInspectable > , & < T as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > EventHandler_box :: < T , F > { const VTABLE : EventHandler_abi < T > = EventHandler_abi :: < T > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < T > , ) ; 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 == & < EventHandler < T > 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 , sender : :: windows :: RawPtr , args : < T as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < :: windows :: IInspectable as :: windows :: Abi > :: Abi as * const < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < T as :: windows :: Abi > :: Abi as * const < T as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct EventRegistrationToken { pub Value : i64 } impl EventRegistrationToken { } impl :: std :: default :: Default for EventRegistrationToken { fn default ( ) -> Self { Self { Value : 0 } } } impl :: std :: fmt :: Debug for EventRegistrationToken { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "EventRegistrationToken" ) . field ( "Value" , & format_args ! ( "{:?}" , self . Value ) ) . finish ( ) } } impl :: std :: cmp :: PartialEq for EventRegistrationToken { fn eq ( & self , other : & Self ) -> bool { self . Value == other . Value } } impl :: std :: cmp :: Eq for EventRegistrationToken { } unsafe impl :: windows :: Abi for EventRegistrationToken { type Abi = Self ; } unsafe impl :: windows :: RuntimeType for EventRegistrationToken { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.EventRegistrationToken;i8)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct FoundationContract ( pub u8 ) ; pub struct GuidHelper { } impl GuidHelper { pub fn CreateNewGuid < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Empty < > ( ) -> :: windows :: Result < :: windows :: Guid > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } ) } pub fn Equals < 'a , > ( target : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < bool > { Self :: IGuidHelperStatics ( | this | unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & target . into_param ( ) . abi ( ) , & value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } ) } pub fn IGuidHelperStatics < R , F : FnOnce ( & IGuidHelperStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < GuidHelper , IGuidHelperStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for GuidHelper { const NAME : & 'static str ="Windows.Foundation.GuidHelper" ; } # [ 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionCompletedHandler > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionCompletedHandler > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncAction > for IAsyncInfo { fn from ( value : IAsyncAction ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IAsyncAction > for IAsyncInfo { fn from ( value : & IAsyncAction ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncAction { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 IAsyncActionWithProgress < TProgress > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IAsyncActionWithProgress < TProgress > { type Vtable = IAsyncActionWithProgress_abi < TProgress > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IAsyncActionWithProgress < TProgress > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < TProgress : :: windows :: RuntimeType + 'static , > IAsyncActionWithProgress < TProgress > { pub fn SetProgress < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionProgressHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Progress < > ( & self , ) -> :: windows :: Result < AsyncActionProgressHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionProgressHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionProgressHandler < TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncActionWithProgressCompletedHandler < TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Completed < > ( & self , ) -> :: windows :: Result < AsyncActionWithProgressCompletedHandler < TProgress > > { let this = self ; unsafe { let mut result__ : < AsyncActionWithProgressCompletedHandler < TProgress > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncActionWithProgressCompletedHandler < TProgress > > ( result__ ) } } pub fn GetResults < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn get ( & self ) -> :: windows :: Result < ( ) > { if self . Status ( ) ? == AsyncStatus :: Started { let ( waiter , signaler ) = :: windows :: Waiter :: new ( ) ; self . SetCompleted ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { unsafe { signaler . signal ( ) ; } Ok ( ( ) ) } ) ) ? ; } self . GetResults ( ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IAsyncActionWithProgress < TProgress > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{1f6db258-e803-48a1-9546-eb7353398884}" ) . push_slice ( b";" ) . push_other ( < TProgress as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: future :: Future for IAsyncActionWithProgress < TProgress > { 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 ( AsyncActionWithProgressCompletedHandler :: new ( move | _sender , _args | { waker . wake_by_ref ( ) ; Ok ( ( ) ) } ) ) ; :: std :: task :: Poll :: Pending } else { :: std :: task :: Poll :: Ready ( self . GetResults ( ) ) } } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for :: windows :: IInspectable { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { value . 0 . clone ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : IAsyncActionWithProgress < TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncActionWithProgress < TProgress > > for IAsyncInfo { fn from ( value : & IAsyncActionWithProgress < TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncActionWithProgress < TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Send for IAsyncActionWithProgress < TProgress > { } unsafe impl < TProgress : :: windows :: RuntimeType + 'static , > :: std :: marker :: Sync for IAsyncActionWithProgress < TProgress > { } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IAsyncActionWithProgress_abi < 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 , ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TProgress > , ) where TProgress : :: windows :: RuntimeType + 'static , ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IAsyncInfo { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{00000036-0000-0000-c000-000000000046}" ) ; } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationCompletedHandler < TResult > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : IAsyncOperation < TResult > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperation < TResult > > for IAsyncInfo { fn from ( value : & IAsyncOperation < TResult > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperation < TResult > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationProgressHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncOperationProgressHandler < TResult , TProgress > > ( result__ ) } } pub fn SetCompleted < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , AsyncOperationWithProgressCompletedHandler < TResult , TProgress > > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TResult > ( result__ ) } } pub fn Id < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Status < > ( & self , ) -> :: windows :: Result < AsyncStatus > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < AsyncStatus as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < AsyncStatus > ( result__ ) } } pub fn ErrorCode < > ( & self , ) -> :: windows :: Result < :: windows :: HRESULT > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HRESULT as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HRESULT > ( result__ ) } } pub fn Cancel < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IAsyncInfo > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IAsyncOperationWithProgress < TResult , TProgress > > for IAsyncInfo { fn from ( value : & IAsyncOperationWithProgress < TResult , TProgress > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } 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 :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( self ) ) } } impl < 'a , TResult : :: windows :: RuntimeType + 'static , TProgress : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IAsyncInfo > for & 'a IAsyncOperationWithProgress < TResult , TProgress > { fn into_param ( self ) -> :: windows :: Param < 'a , IAsyncInfo > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IAsyncInfo > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IClosable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{30d5a829-7fa4-4026-83bb-d75bae4ea99e}" ) ; } 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 ) ] # [ doc ( hidden ) ] pub struct IDeferral ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferral { type Vtable = IDeferral_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 3592853298 ,15231 ,18087 , [ 180 ,11 ,79 ,220 ,162 ,162 ,198 ,147 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferral_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IDeferralFactory { type Vtable = IDeferralFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1705110725 ,16309 ,18482 , [ 140 ,169 ,240 ,97 ,178 ,129 ,209 ,58 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IDeferralFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IGetActivationFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGetActivationFactory { type Vtable = IGetActivationFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1323011810 ,38621 ,18855 , [ 148 ,247 ,70 ,7 ,221 ,171 ,142 ,60 ] , ) ; } impl < > IGetActivationFactory { pub fn GetActivationFactory < 'a , > ( & self , activatableclassid : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { let this = self ; unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , activatableclassid . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IGetActivationFactory { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4edb8ee2-96dd-49a7-94f7-4607ddab8e3c}" ) ; } impl < > :: std :: convert :: From < IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : IGetActivationFactory ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IGetActivationFactory > for :: windows :: IInspectable { fn from ( value : & IGetActivationFactory ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IGetActivationFactory { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGetActivationFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , activatableclassid : :: 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 IGuidHelperStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IGuidHelperStatics { type Vtable = IGuidHelperStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1506252395 ,44626 ,21123 , [ 173 ,127 ,161 ,185 ,233 ,103 ,138 ,221 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IGuidHelperStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , target : & :: windows :: Guid , value : & :: windows :: Guid , result__ : * mut bool ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBuffer ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd2a-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : IMemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBuffer > for :: windows :: IInspectable { fn from ( value : & IMemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBuffer > for IClosable { fn from ( value : IMemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBuffer > for IClosable { fn from ( value : & IMemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBuffer_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 IMemoryBufferFactory ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferFactory { type Vtable = IMemoryBufferFactory_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982891 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferFactory_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut i32 ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , capacity : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , ) where ; # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct IMemoryBufferReference ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IMemoryBufferReference { type Vtable = IMemoryBufferReference_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982889 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl < > IMemoryBufferReference { 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn Closed < 'a , > ( & self , handler : impl :: windows :: IntoParam < 'a , TypedEventHandler < IMemoryBufferReference , :: windows :: IInspectable > > , ) -> :: windows :: Result < EventRegistrationToken > { let this = self ; unsafe { let mut result__ : < EventRegistrationToken as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , handler . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < EventRegistrationToken > ( result__ ) } } pub fn RemoveClosed < 'a , > ( & self , cookie : impl :: windows :: IntoParam < 'a , EventRegistrationToken > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , cookie . into_param ( ) . abi ( ) , ) . ok ( ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IMemoryBufferReference { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{fbc4dd29-245b-11e4-af98-689423260cf8}" ) ; } impl < > :: std :: convert :: From < IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : IMemoryBufferReference ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for :: windows :: IInspectable { fn from ( value : & IMemoryBufferReference ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < IMemoryBufferReference > for IClosable { fn from ( value : IMemoryBufferReference ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & IMemoryBufferReference > for IClosable { fn from ( value : & IMemoryBufferReference ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a IMemoryBufferReference { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IMemoryBufferReference_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , handler : :: windows :: RawPtr , result__ : * mut EventRegistrationToken ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , cookie : EventRegistrationToken ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < > :: windows :: RuntimeType for IPropertyValue { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{4bd682dd-7554-40e9-9a9b-82654ede7e62}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 :: windows :: RawPtr ) -> :: 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 ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics ( :: windows :: IInspectable , ) where ; unsafe impl < > :: windows :: Interface for IPropertyValueStatics { type Vtable = IPropertyValueStatics_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 1654381512 ,55602 ,20468 , [ 150 ,185 ,141 ,150 ,197 ,193 ,232 ,88 ] , ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IPropertyValueStatics_abi ( pub unsafe extern "system" fn ( this : :: windows :: RawPtr , iid : & :: windows :: Guid , interface : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr ) -> u32 , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , count : * mut u32 , values : * mut * mut :: windows :: Guid ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : * mut :: windows :: 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 , value : u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value : Rect , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u8 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const i64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f32 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const f64 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const u16 , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const bool , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const :: windows :: Guid , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const DateTime , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const TimeSpan , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Point , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Size , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , value_array_size : u32 , value : * const Rect , result__ : * mut :: windows :: RawPtr ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < T > ( result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReference < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IReference < T > > for IPropertyValue { fn from ( value : IReference < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReference < T > > for IPropertyValue { fn from ( value : & IReference < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReference < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ 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 IReferenceArray < T > ( :: windows :: IInspectable , :: std :: marker :: PhantomData :: < T > , ) where T : :: windows :: RuntimeType + 'static , ; unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: Interface for IReferenceArray < T > { type Vtable = IReferenceArray_abi < T > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < IReferenceArray < T > as :: windows :: RuntimeType > :: SIGNATURE ) ; } impl < T : :: windows :: RuntimeType + 'static , > IReferenceArray < T > { pub fn Value < > ( & self , ) -> :: windows :: Result < :: windows :: Array < T > > { let this = self ; unsafe { let mut result__ : :: windows :: Array < T > = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , :: windows :: Array :: < T > :: set_abi_len ( & mut result__ ) , :: windows :: Array :: < T > :: set_abi ( & mut result__ ) ) . and_then ( || result__ ) } } pub fn Type < > ( & self , ) -> :: windows :: Result < PropertyType > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < PropertyType as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < PropertyType > ( result__ ) } } pub fn IsNumericScalar < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetUInt8 < > ( & self , ) -> :: windows :: Result < u8 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u8 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u8 > ( result__ ) } } pub fn GetInt16 < > ( & self , ) -> :: windows :: Result < i16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i16 > ( result__ ) } } pub fn GetUInt16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetInt32 < > ( & self , ) -> :: windows :: Result < i32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i32 > ( result__ ) } } pub fn GetUInt32 < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn GetInt64 < > ( & self , ) -> :: windows :: Result < i64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < i64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < i64 > ( result__ ) } } pub fn GetUInt64 < > ( & self , ) -> :: windows :: Result < u64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u64 > ( result__ ) } } pub fn GetSingle < > ( & self , ) -> :: windows :: Result < f32 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f32 > ( result__ ) } } pub fn GetDouble < > ( & self , ) -> :: windows :: Result < f64 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < f64 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < f64 > ( result__ ) } } pub fn GetChar16 < > ( & self , ) -> :: windows :: Result < u16 > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u16 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u16 > ( result__ ) } } pub fn GetBoolean < > ( & self , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetString < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn GetGuid < > ( & self , ) -> :: windows :: Result < :: windows :: Guid > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: Guid as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: Guid > ( result__ ) } } pub fn GetDateTime < > ( & self , ) -> :: windows :: Result < DateTime > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < DateTime as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < DateTime > ( result__ ) } } pub fn GetTimeSpan < > ( & self , ) -> :: windows :: Result < TimeSpan > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < TimeSpan as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < TimeSpan > ( result__ ) } } pub fn GetPoint < > ( & self , ) -> :: windows :: Result < Point > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Point as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Point > ( result__ ) } } pub fn GetSize < > ( & self , ) -> :: windows :: Result < Size > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Size as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < Size > ( result__ ) } } pub fn GetRect < > ( & self , ) -> :: windows :: Result < Rect > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < Rect as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt16Array < > ( & self , value : & mut :: windows :: Array < i16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt32Array < > ( & self , value : & mut :: windows :: Array < i32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt32Array < > ( & self , value : & mut :: windows :: Array < u32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInt64Array < > ( & self , value : & mut :: windows :: Array < i64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetUInt64Array < > ( & self , value : & mut :: windows :: Array < u64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSingleArray < > ( & self , value : & mut :: windows :: Array < f32 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDoubleArray < > ( & self , value : & mut :: windows :: Array < f64 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetChar16Array < > ( & self , value : & mut :: windows :: Array < u16 > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetBooleanArray < > ( & self , value : & mut :: windows :: Array < bool > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetStringArray < > ( & self , value : & mut :: windows :: Array < :: windows :: HSTRING > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetInspectableArray < > ( & self , value : & mut :: windows :: Array < :: windows :: IInspectable > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetGuidArray < > ( & self , value : & mut :: windows :: Array < :: windows :: Guid > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetDateTimeArray < > ( & self , value : & mut :: windows :: Array < DateTime > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetTimeSpanArray < > ( & self , value : & mut :: windows :: Array < TimeSpan > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetPointArray < > ( & self , value : & mut :: windows :: Array < Point > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetSizeArray < > ( & self , value : & mut :: windows :: Array < Size > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } pub fn GetRectArray < > ( & self , value : & mut :: windows :: Array < Rect > , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IPropertyValue > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . set_abi_len ( ) , value . set_abi ( ) , ) . ok ( ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IReferenceArray < T > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{61c17707-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 < IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : IReferenceArray < T > ) -> Self { value . 0 } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for :: windows :: IInspectable { fn from ( value : & IReferenceArray < T > ) -> Self { value . 0 . clone ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for IReferenceArray < 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 IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < IReferenceArray < T > > for IPropertyValue { fn from ( value : IReferenceArray < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IReferenceArray < T > > for IPropertyValue { fn from ( value : & IReferenceArray < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IPropertyValue > for & 'a IReferenceArray < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IPropertyValue > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IPropertyValue > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct IReferenceArray_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_size__ : * mut u32 , result__ : * mut * 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IStringable { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{96369f54-8eb6-48f0-abce-c1b211e627c3}" ) ; } 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 :: windows :: RawPtr ) -> :: 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , toescape : :: 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 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 :: 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 , 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 , 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 , 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 , 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 : :: 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 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 : :: windows :: RawPtr , result__ : * mut :: windows :: RawPtr ) -> :: windows :: HRESULT , pub unsafe extern "system" fn ( this : :: windows :: RawPtr , baseuri : :: windows :: RawPtr , relativeuri : :: 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 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl < > :: windows :: RuntimeType for IWwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"{125e7431-f678-4e8e-b670-20a9b06c512d}" ) ; } 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 :: 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 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 : :: 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 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 : :: 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 MemoryBuffer ( :: windows :: IInspectable ) ; impl MemoryBuffer { pub fn CreateReference < > ( & self , ) -> :: windows :: Result < IMemoryBufferReference > { let this = self ; unsafe { let mut result__ : < IMemoryBufferReference as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IMemoryBufferReference > ( result__ ) } } pub fn Close < > ( & self , ) -> :: windows :: Result < ( ) > { let this = & :: windows :: Interface :: cast :: < IClosable > ( self ) . unwrap ( ) ; unsafe { ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , ) . ok ( ) } } pub fn Create < > ( capacity : u32 , ) -> :: windows :: Result < MemoryBuffer > { Self :: IMemoryBufferFactory ( | this | unsafe { let mut result__ : < MemoryBuffer as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , capacity , & mut result__ ) . from_abi :: < MemoryBuffer > ( result__ ) } ) } pub fn IMemoryBufferFactory < R , F : FnOnce ( & IMemoryBufferFactory ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < MemoryBuffer , IMemoryBufferFactory > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } unsafe impl :: windows :: RuntimeType for MemoryBuffer { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.MemoryBuffer;{fbc4dd2a-245b-11e4-af98-689423260cf8})" ) ; } unsafe impl :: windows :: Interface for MemoryBuffer { type Vtable = IMemoryBuffer_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 4223982890 ,9307 ,4580 , [ 175 ,152 ,104 ,148 ,35 ,38 ,12 ,248 ] , ) ; } impl :: windows :: RuntimeName for MemoryBuffer { const NAME : & 'static str ="Windows.Foundation.MemoryBuffer" ; } impl < > :: std :: convert :: From < MemoryBuffer > for :: windows :: IInspectable { fn from ( value : MemoryBuffer ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & MemoryBuffer > for :: windows :: IInspectable { fn from ( value : & MemoryBuffer ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IMemoryBuffer { fn from ( value : MemoryBuffer ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & MemoryBuffer > for IMemoryBuffer { fn from ( value : & MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IMemoryBuffer > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IMemoryBuffer > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IMemoryBuffer > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < MemoryBuffer > for IClosable { fn from ( value : MemoryBuffer ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & MemoryBuffer > for IClosable { fn from ( value : & MemoryBuffer ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IClosable > for & 'a MemoryBuffer { fn into_param ( self ) -> :: windows :: Param < 'a , IClosable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IClosable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for MemoryBuffer { } unsafe impl :: std :: marker :: Sync for MemoryBuffer { } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Point { pub X : f32 , pub Y : f32 } impl Point { } impl :: std :: default :: Default for Point { fn default ( ) -> Self { Self { X : 0.0 , Y : 0.0 } } } impl :: std :: fmt :: Debug for Point { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Point" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Point { type DefaultType = Self ; 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 ; } unsafe impl :: windows :: RuntimeType for PropertyType { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"enum(Windows.Foundation.PropertyType;i4)" ) ; } pub struct PropertyValue { } impl PropertyValue { pub fn CreateEmpty < > ( ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8 < > ( value : u8 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16 < > ( value : i16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32 < > ( value : i32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .10 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32 < > ( value : u32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .11 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64 < > ( value : i64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .12 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64 < > ( value : u64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .13 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingle < > ( value : f32 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .14 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDouble < > ( value : f64 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .15 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16 < > ( value : u16 , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .16 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBoolean < > ( value : bool , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .17 ) ( :: windows :: Abi :: abi ( this ) , value , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateString < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .18 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectable < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: IInspectable > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .19 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuid < 'a , > ( value : impl :: windows :: IntoParam < 'a , :: windows :: Guid > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .20 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTime < 'a , > ( value : impl :: windows :: IntoParam < 'a , DateTime > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpan < 'a , > ( value : impl :: windows :: IntoParam < 'a , TimeSpan > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePoint < 'a , > ( value : impl :: windows :: IntoParam < 'a , Point > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .23 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSize < 'a , > ( value : impl :: windows :: IntoParam < 'a , Size > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .24 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRect < 'a , > ( value : impl :: windows :: IntoParam < 'a , Rect > , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .25 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt8Array < > ( value : & [ < u8 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .26 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt16Array < > ( value : & [ < i16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .27 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .28 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt32Array < > ( value : & [ < i32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .29 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt32Array < > ( value : & [ < u32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .30 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInt64Array < > ( value : & [ < i64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .31 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateUInt64Array < > ( value : & [ < u64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .32 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSingleArray < > ( value : & [ < f32 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .33 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDoubleArray < > ( value : & [ < f64 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .34 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateChar16Array < > ( value : & [ < u16 as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .35 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateBooleanArray < > ( value : & [ < bool as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .36 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateStringArray < > ( value : & [ < :: windows :: HSTRING as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .37 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateInspectableArray < > ( value : & [ < :: windows :: IInspectable as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .38 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateGuidArray < > ( value : & [ < :: windows :: Guid as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .39 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateDateTimeArray < > ( value : & [ < DateTime as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .40 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateTimeSpanArray < > ( value : & [ < TimeSpan as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .41 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreatePointArray < > ( value : & [ < Point as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .42 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateSizeArray < > ( value : & [ < Size as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .43 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn CreateRectArray < > ( value : & [ < Rect as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < :: windows :: IInspectable > { Self :: IPropertyValueStatics ( | this | unsafe { let mut result__ : < :: windows :: IInspectable as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .44 ) ( :: windows :: Abi :: abi ( this ) , value . len ( ) as u32 , :: std :: mem :: transmute ( value . as_ptr ( ) ) , & mut result__ ) . from_abi :: < :: windows :: IInspectable > ( result__ ) } ) } pub fn IPropertyValueStatics < R , F : FnOnce ( & IPropertyValueStatics ) -> :: windows :: Result < R >> ( callback : F , ) -> :: windows :: Result < R > { static mut SHARED : :: windows :: FactoryCache < PropertyValue , IPropertyValueStatics > = :: windows :: FactoryCache :: new ( ) ; unsafe { SHARED . call ( callback ) } } } impl :: windows :: RuntimeName for PropertyValue { const NAME : & 'static str ="Windows.Foundation.PropertyValue" ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] 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 { Self { X : 0.0 , Y : 0.0 , Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Rect { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Rect" ) . field ( "X" , & format_args ! ( "{:?}" , self . X ) ) . field ( "Y" , & format_args ! ( "{:?}" , self . Y ) ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Rect { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Rect;f4;f4;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct Size { pub Width : f32 , pub Height : f32 } impl Size { } impl :: std :: default :: Default for Size { fn default ( ) -> Self { Self { Width : 0.0 , Height : 0.0 } } } impl :: std :: fmt :: Debug for Size { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "Size" ) . field ( "Width" , & format_args ! ( "{:?}" , self . Width ) ) . field ( "Height" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for Size { type DefaultType = Self ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"struct(Windows.Foundation.Size;f4;f4)" ) ; } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] pub struct TimeSpan { pub Duration : i64 } impl TimeSpan { } impl :: std :: default :: Default for TimeSpan { fn default ( ) -> Self { Self { Duration : 0 } } } impl :: std :: fmt :: Debug for TimeSpan { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "TimeSpan" ) . field ( "Duration" , & format_args ! ( "{:?}" , 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 ; } unsafe impl :: windows :: RuntimeType for TimeSpan { type DefaultType = Self ; 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 TypedEventHandler < TSender , TResult > ( :: windows :: IUnknown , :: std :: marker :: PhantomData :: < TSender > , :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > TypedEventHandler < TSender , TResult > { pub fn new < F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > ( invoke : F ) -> Self { let com = TypedEventHandler_box :: < TSender , TResult , F > { vtable : & TypedEventHandler_box :: < TSender , TResult , F > :: VTABLE , count : :: windows :: RefCount :: new ( 1 ) , invoke , } ; unsafe { std :: mem :: transmute ( :: std :: boxed :: Box :: new ( com ) ) } } pub fn Invoke < 'a , > ( & self , sender : impl :: windows :: IntoParam < 'a , TSender > , args : impl :: windows :: IntoParam < 'a , TResult > , ) -> :: windows :: Result < ( ) > { let this = self ; unsafe { ( :: windows :: Interface :: vtable ( this ) .3 ) ( :: windows :: Abi :: abi ( this ) , sender . into_param ( ) . abi ( ) , args . into_param ( ) . abi ( ) , ) . ok ( ) } } } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for TypedEventHandler < TSender , TResult > { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = { :: windows :: ConstBuffer :: new ( ) . push_slice ( b"pinterface(" ) . push_slice ( b"{9de1c534-6ae1-11e0-84e1-18a905bcc53f}" ) . push_slice ( b";" ) . push_other ( < TSender as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b";" ) . push_other ( < TResult as :: windows :: RuntimeType > :: SIGNATURE ) . push_slice ( b")" ) } ; } unsafe impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , > :: windows :: Interface for TypedEventHandler < TSender , TResult > { type Vtable = TypedEventHandler_abi < TSender , TResult > ; const IID : :: windows :: Guid = :: windows :: Guid :: from_signature ( < TypedEventHandler < TSender , TResult > as :: windows :: RuntimeType > :: SIGNATURE ) ; } # [ repr ( C ) ] # [ doc ( hidden ) ] pub struct TypedEventHandler_abi < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT , pub :: std :: marker :: PhantomData :: < TSender > , pub :: std :: marker :: PhantomData :: < TResult > , ) where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , ; # [ repr ( C ) ] struct TypedEventHandler_box < TSender , TResult , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > where TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , { vtable : * const TypedEventHandler_abi < TSender , TResult > , invoke : F , count : :: windows :: RefCount , } impl < TSender : :: windows :: RuntimeType + 'static , TResult : :: windows :: RuntimeType + 'static , F : FnMut ( & < TSender as :: windows :: RuntimeType > :: DefaultType , & < TResult as :: windows :: RuntimeType > :: DefaultType ) -> :: windows :: Result < ( ) > + 'static > TypedEventHandler_box :: < TSender , TResult , F > { const VTABLE : TypedEventHandler_abi < TSender , TResult > = TypedEventHandler_abi :: < TSender , TResult > ( Self :: QueryInterface , Self :: AddRef , Self :: Release , Self :: Invoke , :: std :: marker :: PhantomData :: < TSender > , :: 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 == & < TypedEventHandler < TSender , 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 , sender : < TSender as :: windows :: Abi > :: Abi , args : < TResult as :: windows :: Abi > :: Abi ) -> :: windows :: HRESULT { let this = this as * mut :: windows :: RawPtr as * mut Self ; ( ( * this ) . invoke ) ( & * ( & sender as * const < TSender as :: windows :: Abi > :: Abi as * const < TSender as :: windows :: RuntimeType > :: DefaultType ) , & * ( & args as * const < TResult as :: windows :: Abi > :: Abi as * const < TResult as :: windows :: RuntimeType > :: DefaultType ) , ) . into ( ) } } # [ repr ( C ) ] # [ derive ( :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy ) ] pub struct UniversalApiContract ( pub u8 ) ; # [ 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn Equals < 'a , > ( & self , puri : impl :: windows :: IntoParam < 'a , Uri > , ) -> :: windows :: Result < bool > { let this = self ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .21 ) ( :: windows :: Abi :: abi ( this ) , puri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn CombineUri < 'a , > ( & self , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { let this = self ; unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .22 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn AbsoluteCanonicalUri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn DisplayIri < > ( & self , ) -> :: windows :: Result < :: windows :: HSTRING > { let this = & :: windows :: Interface :: cast :: < IUriRuntimeClassWithAbsoluteCanonicalUri > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < :: windows :: HSTRING as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } pub fn UnescapeComponent < 'a , > ( tounescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , tounescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn EscapeComponent < 'a , > ( toescape : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( this ) , toescape . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } ) } pub fn CreateUri < 'a , > ( uri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , uri . into_param ( ) . abi ( ) , & mut result__ ) . from_abi :: < Uri > ( result__ ) } ) } pub fn CreateWithRelativeUri < 'a , > ( baseuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , relativeuri : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < Uri > { Self :: IUriRuntimeClassFactory ( | this | unsafe { let mut result__ : < Uri as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < Uri > for IStringable { fn from ( value : Uri ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & Uri > for IStringable { fn from ( value : & Uri ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IStringable > for & 'a Uri { fn into_param ( self ) -> :: windows :: Param < 'a , IStringable > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IStringable > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 , > ( & self , name : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: 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 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < Collections:: IIterator :: < IWwwFormUrlDecoderEntry > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IWwwFormUrlDecoderEntry as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , index , & mut result__ ) . from_abi :: < IWwwFormUrlDecoderEntry > ( result__ ) } } pub fn Size < > ( & self , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .7 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > , index : & mut u32 , ) -> :: windows :: Result < bool > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < bool as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .8 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < IWwwFormUrlDecoderEntry as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = & :: windows :: Interface :: cast :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > ( self ) . unwrap ( ) ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( this ) , startindex , items . len ( ) as u32 , :: std :: mem :: transmute_copy ( & items ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn CreateWwwFormUrlDecoder < 'a , > ( query : impl :: windows :: IntoParam < 'a , :: windows :: HSTRING > , ) -> :: windows :: Result < WwwFormUrlDecoder > { Self :: IWwwFormUrlDecoderRuntimeClassFactory ( | this | unsafe { let mut result__ : < WwwFormUrlDecoder as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( 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 { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IIterable :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IIterable :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : WwwFormUrlDecoder ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < > :: std :: convert :: From < & WwwFormUrlDecoder > for Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > { fn from ( value : & WwwFormUrlDecoder ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > for & 'a WwwFormUrlDecoder { fn into_param ( self ) -> :: windows :: Param < 'a , Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < Collections:: IVectorView :: < IWwwFormUrlDecoderEntry > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } 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 { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } impl < 'a , > :: std :: iter :: IntoIterator for & 'a WwwFormUrlDecoder { type Item = IWwwFormUrlDecoderEntry ; type IntoIter = Collections:: VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { Collections:: VectorViewIterator :: new ( self . into ( ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: clone :: Clone , :: std :: fmt :: Debug ) ] pub struct WwwFormUrlDecoderEntry ( :: windows :: IInspectable ) ; impl WwwFormUrlDecoderEntry { 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < :: windows :: HSTRING > ( result__ ) } } } unsafe impl :: windows :: RuntimeType for WwwFormUrlDecoderEntry { type DefaultType = :: std :: option :: Option < Self > ; const SIGNATURE : :: windows :: ConstBuffer = :: windows :: ConstBuffer :: from_slice ( b"rc(Windows.Foundation.WwwFormUrlDecoderEntry;{125e7431-f678-4e8e-b670-20a9b06c512d})" ) ; } unsafe impl :: windows :: Interface for WwwFormUrlDecoderEntry { type Vtable = IWwwFormUrlDecoderEntry_abi ; const IID : :: windows :: Guid = :: windows :: Guid :: from_values ( 308180017 ,63096 ,20110 , [ 182 ,112 ,32 ,169 ,176 ,108 ,81 ,45 ] , ) ; } impl :: windows :: RuntimeName for WwwFormUrlDecoderEntry { const NAME : & 'static str ="Windows.Foundation.WwwFormUrlDecoderEntry" ; } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { value . 0 } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for :: windows :: IInspectable { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { value . 0 . clone ( ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Owned ( self . 0 ) } } impl < 'a , > :: windows :: IntoParam < 'a , :: windows :: IInspectable > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , :: windows :: IInspectable > { :: windows :: Param :: Borrowed ( & self . 0 ) } } impl < > :: std :: convert :: From < WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : WwwFormUrlDecoderEntry ) -> Self { unsafe { :: std :: mem :: transmute ( value ) } } } impl < > :: std :: convert :: From < & WwwFormUrlDecoderEntry > for IWwwFormUrlDecoderEntry { fn from ( value : & WwwFormUrlDecoderEntry ) -> Self { :: std :: convert :: From :: from ( :: std :: clone :: Clone :: clone ( value ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( self ) ) } } impl < 'a , > :: windows :: IntoParam < 'a , IWwwFormUrlDecoderEntry > for & 'a WwwFormUrlDecoderEntry { fn into_param ( self ) -> :: windows :: Param < 'a , IWwwFormUrlDecoderEntry > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IWwwFormUrlDecoderEntry > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } unsafe impl :: std :: marker :: Send for WwwFormUrlDecoderEntry { } unsafe impl :: std :: marker :: Sync for WwwFormUrlDecoderEntry { } # [ 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IIterable < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 { self . First ( ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 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 ) ( :: windows :: Abi :: abi ( 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 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < u32 > ( result__ ) } } pub fn IndexOf < 'a , > ( & self , value : impl :: windows :: IntoParam < 'a , T > , 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 ) ( :: windows :: Abi :: abi ( this ) , value . into_param ( ) . abi ( ) , index , & mut result__ ) . from_abi :: < bool > ( result__ ) } } pub fn GetMany < > ( & self , startindex : u32 , items : & mut [ < T as :: windows :: RuntimeType > :: DefaultType ] , ) -> :: windows :: Result < u32 > { let this = self ; unsafe { let mut result__ : < u32 as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .9 ) ( :: windows :: Abi :: abi ( 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 ) . unwrap ( ) ; unsafe { let mut result__ : < IIterator < T > as :: windows :: Abi > :: Abi = :: std :: mem :: zeroed ( ) ; ( :: windows :: Interface :: vtable ( this ) .6 ) ( :: windows :: Abi :: abi ( this ) , & mut result__ ) . from_abi :: < IIterator < T > > ( result__ ) } } } unsafe impl < T : :: windows :: RuntimeType + 'static , > :: windows :: RuntimeType for IVectorView < T > { type DefaultType = :: std :: option :: Option < Self > ; 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 :: 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 :: From < IVectorView < T > > for IIterable < T > { fn from ( value : IVectorView < T > ) -> Self { :: std :: convert :: From :: from ( & value ) } } impl < T : :: windows :: RuntimeType + 'static , > :: std :: convert :: From < & IVectorView < T > > for IIterable < T > { fn from ( value : & IVectorView < T > ) -> Self { :: windows :: Interface :: cast ( value ) . unwrap ( ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( self ) ) } } impl < 'a , T : :: windows :: RuntimeType + 'static , > :: windows :: IntoParam < 'a , IIterable < T > > for & 'a IVectorView < T > { fn into_param ( self ) -> :: windows :: Param < 'a , IIterable < T > > { :: windows :: Param :: Owned ( :: std :: convert :: Into :: < IIterable < T > > :: into ( :: std :: clone :: Clone :: clone ( self ) ) ) } } pub struct VectorViewIterator < T : :: windows :: RuntimeType + 'static > { vector : IVectorView < T > , current : u32 , size : u32 , } impl < T : :: windows :: RuntimeType > VectorViewIterator < T > { pub fn new ( vector : IVectorView < T > ) -> Self { let size = vector . Size ( ) . unwrap ( ) ; Self { vector , current : 0 , size } } } impl < T : :: windows :: RuntimeType > :: std :: iter :: Iterator for VectorViewIterator < T > { type Item = T ; fn next ( & mut self ) -> :: std :: option :: Option < Self :: Item > { if self . current >= self . size { return None ; } let result = self . vector . GetAt ( self . current ) ; self . current += 1 ; result . ok ( ) } } 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 ( self ) } } impl < 'a , T : :: windows :: RuntimeType > :: std :: iter :: IntoIterator for & 'a IVectorView < T > { type Item = T ; type IntoIter = VectorViewIterator < Self :: Item > ; fn into_iter ( self ) -> Self :: IntoIter { VectorViewIterator :: new ( :: 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 , ; } } } [WARN] too much data in the log, truncating it