1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)] 2 #[repr(transparent)] 3 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 4 pub struct Buffer(::windows::runtime::IInspectable); 5 impl Buffer { 6 pub fn Capacity(&self) -> ::windows::runtime::Result<u32> { 7 let this = self; 8 unsafe { 9 let mut result__: u32 = ::std::mem::zeroed(); 10 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 11 } 12 } 13 pub fn Length(&self) -> ::windows::runtime::Result<u32> { 14 let this = self; 15 unsafe { 16 let mut result__: u32 = ::std::mem::zeroed(); 17 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 18 } 19 } 20 pub fn SetLength(&self, value: u32) -> ::windows::runtime::Result<()> { 21 let this = self; 22 unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() } 23 } 24 pub fn Create(capacity: u32) -> ::windows::runtime::Result<Buffer> { 25 Self::IBufferFactory(|this| unsafe { 26 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 27 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), capacity, &mut result__).from_abi::<Buffer>(result__) 28 }) 29 } 30 #[cfg(feature = "Foundation")] 31 pub fn CreateCopyFromMemoryBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IMemoryBuffer>>(input: Param0) -> ::windows::runtime::Result<Buffer> { 32 Self::IBufferStatics(|this| unsafe { 33 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 34 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), input.into_param().abi(), &mut result__).from_abi::<Buffer>(result__) 35 }) 36 } 37 #[cfg(feature = "Foundation")] 38 pub fn CreateMemoryBufferOverIBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(input: Param0) -> ::windows::runtime::Result<super::super::Foundation::MemoryBuffer> { 39 Self::IBufferStatics(|this| unsafe { 40 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 41 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), input.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::MemoryBuffer>(result__) 42 }) 43 } 44 pub fn IBufferFactory<R, F: FnOnce(&IBufferFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 45 static mut SHARED: ::windows::runtime::FactoryCache<Buffer, IBufferFactory> = ::windows::runtime::FactoryCache::new(); 46 unsafe { SHARED.call(callback) } 47 } 48 pub fn IBufferStatics<R, F: FnOnce(&IBufferStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 49 static mut SHARED: ::windows::runtime::FactoryCache<Buffer, IBufferStatics> = ::windows::runtime::FactoryCache::new(); 50 unsafe { SHARED.call(callback) } 51 } 52 } 53 unsafe impl ::windows::runtime::RuntimeType for Buffer { 54 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.Buffer;{905a0fe0-bc53-11df-8c49-001e4fc686da})"); 55 } 56 unsafe impl ::windows::runtime::Interface for Buffer { 57 type Vtable = IBuffer_abi; 58 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821408, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 59 } 60 impl ::windows::runtime::RuntimeName for Buffer { 61 const NAME: &'static str = "Windows.Storage.Streams.Buffer"; 62 } 63 impl ::std::convert::From<Buffer> for ::windows::runtime::IUnknown { 64 fn from(value: Buffer) -> Self { 65 unsafe { ::std::mem::transmute(value) } 66 } 67 } 68 impl ::std::convert::From<&Buffer> for ::windows::runtime::IUnknown { 69 fn from(value: &Buffer) -> Self { 70 ::std::convert::From::from(::std::clone::Clone::clone(value)) 71 } 72 } 73 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Buffer { 74 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 75 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 76 } 77 } 78 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Buffer { 79 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 80 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 81 } 82 } 83 impl ::std::convert::From<Buffer> for ::windows::runtime::IInspectable { 84 fn from(value: Buffer) -> Self { 85 value.0 86 } 87 } 88 impl ::std::convert::From<&Buffer> for ::windows::runtime::IInspectable { 89 fn from(value: &Buffer) -> Self { 90 value.0.clone() 91 } 92 } 93 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Buffer { 94 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 95 ::windows::runtime::Param::Owned(self.0) 96 } 97 } 98 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Buffer { 99 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 100 ::windows::runtime::Param::Borrowed(&self.0) 101 } 102 } 103 impl ::std::convert::From<Buffer> for IBuffer { 104 fn from(value: Buffer) -> Self { 105 unsafe { ::std::mem::transmute(value) } 106 } 107 } 108 impl ::std::convert::From<&Buffer> for IBuffer { 109 fn from(value: &Buffer) -> Self { 110 ::std::convert::From::from(::std::clone::Clone::clone(value)) 111 } 112 } 113 impl<'a> ::windows::runtime::IntoParam<'a, IBuffer> for Buffer { 114 fn into_param(self) -> ::windows::runtime::Param<'a, IBuffer> { 115 ::windows::runtime::Param::Owned(::std::convert::Into::<IBuffer>::into(self)) 116 } 117 } 118 impl<'a> ::windows::runtime::IntoParam<'a, IBuffer> for &Buffer { 119 fn into_param(self) -> ::windows::runtime::Param<'a, IBuffer> { 120 ::windows::runtime::Param::Owned(::std::convert::Into::<IBuffer>::into(::std::clone::Clone::clone(self))) 121 } 122 } 123 unsafe impl ::std::marker::Send for Buffer {} 124 unsafe impl ::std::marker::Sync for Buffer {} 125 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)] 126 #[repr(transparent)] 127 pub struct ByteOrder(pub i32); 128 impl ByteOrder { 129 pub const LittleEndian: ByteOrder = ByteOrder(0i32); 130 pub const BigEndian: ByteOrder = ByteOrder(1i32); 131 } 132 impl ::std::convert::From<i32> for ByteOrder { 133 fn from(value: i32) -> Self { 134 Self(value) 135 } 136 } 137 unsafe impl ::windows::runtime::Abi for ByteOrder { 138 type Abi = Self; 139 type DefaultType = Self; 140 } 141 unsafe impl ::windows::runtime::RuntimeType for ByteOrder { 142 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.Streams.ByteOrder;i4)"); 143 } 144 #[repr(transparent)] 145 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 146 pub struct DataReader(::windows::runtime::IInspectable); 147 impl DataReader { 148 pub fn UnconsumedBufferLength(&self) -> ::windows::runtime::Result<u32> { 149 let this = self; 150 unsafe { 151 let mut result__: u32 = ::std::mem::zeroed(); 152 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 153 } 154 } 155 pub fn UnicodeEncoding(&self) -> ::windows::runtime::Result<UnicodeEncoding> { 156 let this = self; 157 unsafe { 158 let mut result__: UnicodeEncoding = ::std::mem::zeroed(); 159 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UnicodeEncoding>(result__) 160 } 161 } 162 pub fn SetUnicodeEncoding(&self, value: UnicodeEncoding) -> ::windows::runtime::Result<()> { 163 let this = self; 164 unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() } 165 } 166 pub fn ByteOrder(&self) -> ::windows::runtime::Result<ByteOrder> { 167 let this = self; 168 unsafe { 169 let mut result__: ByteOrder = ::std::mem::zeroed(); 170 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ByteOrder>(result__) 171 } 172 } 173 pub fn SetByteOrder(&self, value: ByteOrder) -> ::windows::runtime::Result<()> { 174 let this = self; 175 unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() } 176 } 177 pub fn InputStreamOptions(&self) -> ::windows::runtime::Result<InputStreamOptions> { 178 let this = self; 179 unsafe { 180 let mut result__: InputStreamOptions = ::std::mem::zeroed(); 181 (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<InputStreamOptions>(result__) 182 } 183 } 184 pub fn SetInputStreamOptions(&self, value: InputStreamOptions) -> ::windows::runtime::Result<()> { 185 let this = self; 186 unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value).ok() } 187 } 188 pub fn ReadByte(&self) -> ::windows::runtime::Result<u8> { 189 let this = self; 190 unsafe { 191 let mut result__: u8 = ::std::mem::zeroed(); 192 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__) 193 } 194 } 195 pub fn ReadBytes(&self, value: &mut [<u8 as ::windows::runtime::Abi>::DefaultType]) -> ::windows::runtime::Result<()> { 196 let this = self; 197 unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.len() as u32, ::std::mem::transmute_copy(&value)).ok() } 198 } 199 pub fn ReadBuffer(&self, length: u32) -> ::windows::runtime::Result<IBuffer> { 200 let this = self; 201 unsafe { 202 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 203 (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), length, &mut result__).from_abi::<IBuffer>(result__) 204 } 205 } 206 pub fn ReadBoolean(&self) -> ::windows::runtime::Result<bool> { 207 let this = self; 208 unsafe { 209 let mut result__: bool = ::std::mem::zeroed(); 210 (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 211 } 212 } 213 pub fn ReadGuid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> { 214 let this = self; 215 unsafe { 216 let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed(); 217 (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__) 218 } 219 } 220 pub fn ReadInt16(&self) -> ::windows::runtime::Result<i16> { 221 let this = self; 222 unsafe { 223 let mut result__: i16 = ::std::mem::zeroed(); 224 (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i16>(result__) 225 } 226 } 227 pub fn ReadInt32(&self) -> ::windows::runtime::Result<i32> { 228 let this = self; 229 unsafe { 230 let mut result__: i32 = ::std::mem::zeroed(); 231 (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__) 232 } 233 } 234 pub fn ReadInt64(&self) -> ::windows::runtime::Result<i64> { 235 let this = self; 236 unsafe { 237 let mut result__: i64 = ::std::mem::zeroed(); 238 (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i64>(result__) 239 } 240 } 241 pub fn ReadUInt16(&self) -> ::windows::runtime::Result<u16> { 242 let this = self; 243 unsafe { 244 let mut result__: u16 = ::std::mem::zeroed(); 245 (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__) 246 } 247 } 248 pub fn ReadUInt32(&self) -> ::windows::runtime::Result<u32> { 249 let this = self; 250 unsafe { 251 let mut result__: u32 = ::std::mem::zeroed(); 252 (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 253 } 254 } 255 pub fn ReadUInt64(&self) -> ::windows::runtime::Result<u64> { 256 let this = self; 257 unsafe { 258 let mut result__: u64 = ::std::mem::zeroed(); 259 (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 260 } 261 } 262 pub fn ReadSingle(&self) -> ::windows::runtime::Result<f32> { 263 let this = self; 264 unsafe { 265 let mut result__: f32 = ::std::mem::zeroed(); 266 (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__) 267 } 268 } 269 pub fn ReadDouble(&self) -> ::windows::runtime::Result<f64> { 270 let this = self; 271 unsafe { 272 let mut result__: f64 = ::std::mem::zeroed(); 273 (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__) 274 } 275 } 276 pub fn ReadString(&self, codeunitcount: u32) -> ::windows::runtime::Result<::windows::runtime::HSTRING> { 277 let this = self; 278 unsafe { 279 let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed(); 280 (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), codeunitcount, &mut result__).from_abi::<::windows::runtime::HSTRING>(result__) 281 } 282 } 283 #[cfg(feature = "Foundation")] 284 pub fn ReadDateTime(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> { 285 let this = self; 286 unsafe { 287 let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed(); 288 (::windows::runtime::Interface::vtable(this).27)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__) 289 } 290 } 291 #[cfg(feature = "Foundation")] 292 pub fn ReadTimeSpan(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> { 293 let this = self; 294 unsafe { 295 let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed(); 296 (::windows::runtime::Interface::vtable(this).28)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__) 297 } 298 } 299 #[cfg(feature = "Foundation")] 300 pub fn LoadAsync(&self, count: u32) -> ::windows::runtime::Result<DataReaderLoadOperation> { 301 let this = self; 302 unsafe { 303 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 304 (::windows::runtime::Interface::vtable(this).29)(::std::mem::transmute_copy(this), count, &mut result__).from_abi::<DataReaderLoadOperation>(result__) 305 } 306 } 307 pub fn DetachBuffer(&self) -> ::windows::runtime::Result<IBuffer> { 308 let this = self; 309 unsafe { 310 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 311 (::windows::runtime::Interface::vtable(this).30)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IBuffer>(result__) 312 } 313 } 314 pub fn DetachStream(&self) -> ::windows::runtime::Result<IInputStream> { 315 let this = self; 316 unsafe { 317 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 318 (::windows::runtime::Interface::vtable(this).31)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IInputStream>(result__) 319 } 320 } 321 #[cfg(feature = "Foundation")] 322 pub fn Close(&self) -> ::windows::runtime::Result<()> { 323 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 324 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 325 } 326 pub fn CreateDataReader<'a, Param0: ::windows::runtime::IntoParam<'a, IInputStream>>(inputstream: Param0) -> ::windows::runtime::Result<DataReader> { 327 Self::IDataReaderFactory(|this| unsafe { 328 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 329 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), inputstream.into_param().abi(), &mut result__).from_abi::<DataReader>(result__) 330 }) 331 } 332 pub fn FromBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(buffer: Param0) -> ::windows::runtime::Result<DataReader> { 333 Self::IDataReaderStatics(|this| unsafe { 334 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 335 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<DataReader>(result__) 336 }) 337 } 338 pub fn IDataReaderFactory<R, F: FnOnce(&IDataReaderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 339 static mut SHARED: ::windows::runtime::FactoryCache<DataReader, IDataReaderFactory> = ::windows::runtime::FactoryCache::new(); 340 unsafe { SHARED.call(callback) } 341 } 342 pub fn IDataReaderStatics<R, F: FnOnce(&IDataReaderStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 343 static mut SHARED: ::windows::runtime::FactoryCache<DataReader, IDataReaderStatics> = ::windows::runtime::FactoryCache::new(); 344 unsafe { SHARED.call(callback) } 345 } 346 } 347 unsafe impl ::windows::runtime::RuntimeType for DataReader { 348 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.DataReader;{e2b50029-b4c1-4314-a4b8-fb813a2f275e})"); 349 } 350 unsafe impl ::windows::runtime::Interface for DataReader { 351 type Vtable = IDataReader_abi; 352 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3803512873, 46273, 17172, [164, 184, 251, 129, 58, 47, 39, 94]); 353 } 354 impl ::windows::runtime::RuntimeName for DataReader { 355 const NAME: &'static str = "Windows.Storage.Streams.DataReader"; 356 } 357 impl ::std::convert::From<DataReader> for ::windows::runtime::IUnknown { 358 fn from(value: DataReader) -> Self { 359 unsafe { ::std::mem::transmute(value) } 360 } 361 } 362 impl ::std::convert::From<&DataReader> for ::windows::runtime::IUnknown { 363 fn from(value: &DataReader) -> Self { 364 ::std::convert::From::from(::std::clone::Clone::clone(value)) 365 } 366 } 367 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DataReader { 368 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 369 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 370 } 371 } 372 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DataReader { 373 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 374 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 375 } 376 } 377 impl ::std::convert::From<DataReader> for ::windows::runtime::IInspectable { 378 fn from(value: DataReader) -> Self { 379 value.0 380 } 381 } 382 impl ::std::convert::From<&DataReader> for ::windows::runtime::IInspectable { 383 fn from(value: &DataReader) -> Self { 384 value.0.clone() 385 } 386 } 387 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DataReader { 388 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 389 ::windows::runtime::Param::Owned(self.0) 390 } 391 } 392 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DataReader { 393 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 394 ::windows::runtime::Param::Borrowed(&self.0) 395 } 396 } 397 impl ::std::convert::From<DataReader> for IDataReader { 398 fn from(value: DataReader) -> Self { 399 unsafe { ::std::mem::transmute(value) } 400 } 401 } 402 impl ::std::convert::From<&DataReader> for IDataReader { 403 fn from(value: &DataReader) -> Self { 404 ::std::convert::From::from(::std::clone::Clone::clone(value)) 405 } 406 } 407 impl<'a> ::windows::runtime::IntoParam<'a, IDataReader> for DataReader { 408 fn into_param(self) -> ::windows::runtime::Param<'a, IDataReader> { 409 ::windows::runtime::Param::Owned(::std::convert::Into::<IDataReader>::into(self)) 410 } 411 } 412 impl<'a> ::windows::runtime::IntoParam<'a, IDataReader> for &DataReader { 413 fn into_param(self) -> ::windows::runtime::Param<'a, IDataReader> { 414 ::windows::runtime::Param::Owned(::std::convert::Into::<IDataReader>::into(::std::clone::Clone::clone(self))) 415 } 416 } 417 #[cfg(feature = "Foundation")] 418 impl ::std::convert::TryFrom<DataReader> for super::super::Foundation::IClosable { 419 type Error = ::windows::runtime::Error; 420 fn try_from(value: DataReader) -> ::windows::runtime::Result<Self> { 421 ::std::convert::TryFrom::try_from(&value) 422 } 423 } 424 #[cfg(feature = "Foundation")] 425 impl ::std::convert::TryFrom<&DataReader> for super::super::Foundation::IClosable { 426 type Error = ::windows::runtime::Error; 427 fn try_from(value: &DataReader) -> ::windows::runtime::Result<Self> { 428 ::windows::runtime::Interface::cast(value) 429 } 430 } 431 #[cfg(feature = "Foundation")] 432 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for DataReader { 433 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 434 ::windows::runtime::IntoParam::into_param(&self) 435 } 436 } 437 #[cfg(feature = "Foundation")] 438 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &DataReader { 439 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 440 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 441 } 442 } 443 unsafe impl ::std::marker::Send for DataReader {} 444 unsafe impl ::std::marker::Sync for DataReader {} 445 #[cfg(feature = "Foundation")] 446 #[repr(transparent)] 447 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 448 pub struct DataReaderLoadOperation(::windows::runtime::IInspectable); 449 #[cfg(feature = "Foundation")] 450 impl DataReaderLoadOperation { 451 #[cfg(feature = "Foundation")] 452 pub fn SetCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::AsyncOperationCompletedHandler<u32>>>(&self, handler: Param0) -> ::windows::runtime::Result<()> { 453 let this = self; 454 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), handler.into_param().abi()).ok() } 455 } 456 #[cfg(feature = "Foundation")] 457 pub fn Completed(&self) -> ::windows::runtime::Result<super::super::Foundation::AsyncOperationCompletedHandler<u32>> { 458 let this = self; 459 unsafe { 460 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 461 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::AsyncOperationCompletedHandler<u32>>(result__) 462 } 463 } 464 #[cfg(feature = "Foundation")] 465 pub fn GetResults(&self) -> ::windows::runtime::Result<u32> { 466 let this = self; 467 unsafe { 468 let mut result__: u32 = ::std::mem::zeroed(); 469 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 470 } 471 } 472 #[cfg(feature = "Foundation")] 473 pub fn Id(&self) -> ::windows::runtime::Result<u32> { 474 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 475 unsafe { 476 let mut result__: u32 = ::std::mem::zeroed(); 477 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 478 } 479 } 480 #[cfg(feature = "Foundation")] 481 pub fn Status(&self) -> ::windows::runtime::Result<super::super::Foundation::AsyncStatus> { 482 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 483 unsafe { 484 let mut result__: super::super::Foundation::AsyncStatus = ::std::mem::zeroed(); 485 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::AsyncStatus>(result__) 486 } 487 } 488 #[cfg(feature = "Foundation")] 489 pub fn ErrorCode(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> { 490 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 491 unsafe { 492 let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed(); 493 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__) 494 } 495 } 496 #[cfg(feature = "Foundation")] 497 pub fn Cancel(&self) -> ::windows::runtime::Result<()> { 498 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 499 unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this)).ok() } 500 } 501 #[cfg(feature = "Foundation")] 502 pub fn Close(&self) -> ::windows::runtime::Result<()> { 503 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 504 unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this)).ok() } 505 } 506 pub fn get(&self) -> ::windows::runtime::Result<u32> { 507 if self.Status()? == super::super::Foundation::AsyncStatus::Started { 508 let (waiter, signaler) = ::windows::runtime::Waiter::new(); 509 self.SetCompleted(super::super::Foundation::AsyncOperationCompletedHandler::new(move |_sender, _args| { 510 unsafe { 511 signaler.signal(); 512 } 513 Ok(()) 514 }))?; 515 } 516 self.GetResults() 517 } 518 } 519 #[cfg(feature = "Foundation")] 520 unsafe impl ::windows::runtime::RuntimeType for DataReaderLoadOperation { 521 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.DataReaderLoadOperation;pinterface({9fc2b0bb-e446-44e2-aa61-9cab8f636af2};u4))"); 522 } 523 #[cfg(feature = "Foundation")] 524 unsafe impl ::windows::runtime::Interface for DataReaderLoadOperation { 525 type Vtable = super::super::Foundation::IAsyncOperation_abi<u32>; 526 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_signature(<super::super::Foundation::IAsyncOperation<u32> as ::windows::runtime::RuntimeType>::SIGNATURE); 527 } 528 #[cfg(feature = "Foundation")] 529 impl ::windows::runtime::RuntimeName for DataReaderLoadOperation { 530 const NAME: &'static str = "Windows.Storage.Streams.DataReaderLoadOperation"; 531 } 532 impl ::std::future::Future for DataReaderLoadOperation { 533 type Output = ::windows::runtime::Result<u32>; 534 fn poll(self: ::std::pin::Pin<&mut Self>, context: &mut ::std::task::Context) -> ::std::task::Poll<Self::Output> { 535 if self.Status()? == super::super::Foundation::AsyncStatus::Started { 536 let waker = context.waker().clone(); 537 let _ = self.SetCompleted(super::super::Foundation::AsyncOperationCompletedHandler::new(move |_sender, _args| { 538 waker.wake_by_ref(); 539 Ok(()) 540 })); 541 ::std::task::Poll::Pending 542 } else { 543 ::std::task::Poll::Ready(self.GetResults()) 544 } 545 } 546 } 547 #[cfg(feature = "Foundation")] 548 impl ::std::convert::From<DataReaderLoadOperation> for ::windows::runtime::IUnknown { 549 fn from(value: DataReaderLoadOperation) -> Self { 550 unsafe { ::std::mem::transmute(value) } 551 } 552 } 553 #[cfg(feature = "Foundation")] 554 impl ::std::convert::From<&DataReaderLoadOperation> for ::windows::runtime::IUnknown { 555 fn from(value: &DataReaderLoadOperation) -> Self { 556 ::std::convert::From::from(::std::clone::Clone::clone(value)) 557 } 558 } 559 #[cfg(feature = "Foundation")] 560 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DataReaderLoadOperation { 561 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 562 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 563 } 564 } 565 #[cfg(feature = "Foundation")] 566 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DataReaderLoadOperation { 567 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 568 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 569 } 570 } 571 #[cfg(feature = "Foundation")] 572 impl ::std::convert::From<DataReaderLoadOperation> for ::windows::runtime::IInspectable { 573 fn from(value: DataReaderLoadOperation) -> Self { 574 value.0 575 } 576 } 577 #[cfg(feature = "Foundation")] 578 impl ::std::convert::From<&DataReaderLoadOperation> for ::windows::runtime::IInspectable { 579 fn from(value: &DataReaderLoadOperation) -> Self { 580 value.0.clone() 581 } 582 } 583 #[cfg(feature = "Foundation")] 584 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DataReaderLoadOperation { 585 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 586 ::windows::runtime::Param::Owned(self.0) 587 } 588 } 589 #[cfg(feature = "Foundation")] 590 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DataReaderLoadOperation { 591 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 592 ::windows::runtime::Param::Borrowed(&self.0) 593 } 594 } 595 #[cfg(feature = "Foundation")] 596 impl ::std::convert::From<DataReaderLoadOperation> for super::super::Foundation::IAsyncOperation<u32> { 597 fn from(value: DataReaderLoadOperation) -> Self { 598 unsafe { ::std::mem::transmute(value) } 599 } 600 } 601 #[cfg(feature = "Foundation")] 602 impl ::std::convert::From<&DataReaderLoadOperation> for super::super::Foundation::IAsyncOperation<u32> { 603 fn from(value: &DataReaderLoadOperation) -> Self { 604 ::std::convert::From::from(::std::clone::Clone::clone(value)) 605 } 606 } 607 #[cfg(feature = "Foundation")] 608 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncOperation<u32>> for DataReaderLoadOperation { 609 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncOperation<u32>> { 610 ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::Foundation::IAsyncOperation<u32>>::into(self)) 611 } 612 } 613 #[cfg(feature = "Foundation")] 614 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncOperation<u32>> for &DataReaderLoadOperation { 615 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncOperation<u32>> { 616 ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::Foundation::IAsyncOperation<u32>>::into(::std::clone::Clone::clone(self))) 617 } 618 } 619 #[cfg(feature = "Foundation")] 620 impl ::std::convert::TryFrom<DataReaderLoadOperation> for super::super::Foundation::IAsyncInfo { 621 type Error = ::windows::runtime::Error; 622 fn try_from(value: DataReaderLoadOperation) -> ::windows::runtime::Result<Self> { 623 ::std::convert::TryFrom::try_from(&value) 624 } 625 } 626 #[cfg(feature = "Foundation")] 627 impl ::std::convert::TryFrom<&DataReaderLoadOperation> for super::super::Foundation::IAsyncInfo { 628 type Error = ::windows::runtime::Error; 629 fn try_from(value: &DataReaderLoadOperation) -> ::windows::runtime::Result<Self> { 630 ::windows::runtime::Interface::cast(value) 631 } 632 } 633 #[cfg(feature = "Foundation")] 634 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncInfo> for DataReaderLoadOperation { 635 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncInfo> { 636 ::windows::runtime::IntoParam::into_param(&self) 637 } 638 } 639 #[cfg(feature = "Foundation")] 640 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncInfo> for &DataReaderLoadOperation { 641 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncInfo> { 642 ::std::convert::TryInto::<super::super::Foundation::IAsyncInfo>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 643 } 644 } 645 #[cfg(feature = "Foundation")] 646 unsafe impl ::std::marker::Send for DataReaderLoadOperation {} 647 #[cfg(feature = "Foundation")] 648 unsafe impl ::std::marker::Sync for DataReaderLoadOperation {} 649 #[repr(transparent)] 650 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 651 pub struct DataWriter(::windows::runtime::IInspectable); 652 impl DataWriter { 653 pub fn new() -> ::windows::runtime::Result<Self> { 654 Self::IActivationFactory(|f| f.activate_instance::<Self>()) 655 } 656 fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 657 static mut SHARED: ::windows::runtime::FactoryCache<DataWriter, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new(); 658 unsafe { SHARED.call(callback) } 659 } 660 pub fn UnstoredBufferLength(&self) -> ::windows::runtime::Result<u32> { 661 let this = self; 662 unsafe { 663 let mut result__: u32 = ::std::mem::zeroed(); 664 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 665 } 666 } 667 pub fn UnicodeEncoding(&self) -> ::windows::runtime::Result<UnicodeEncoding> { 668 let this = self; 669 unsafe { 670 let mut result__: UnicodeEncoding = ::std::mem::zeroed(); 671 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UnicodeEncoding>(result__) 672 } 673 } 674 pub fn SetUnicodeEncoding(&self, value: UnicodeEncoding) -> ::windows::runtime::Result<()> { 675 let this = self; 676 unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() } 677 } 678 pub fn ByteOrder(&self) -> ::windows::runtime::Result<ByteOrder> { 679 let this = self; 680 unsafe { 681 let mut result__: ByteOrder = ::std::mem::zeroed(); 682 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ByteOrder>(result__) 683 } 684 } 685 pub fn SetByteOrder(&self, value: ByteOrder) -> ::windows::runtime::Result<()> { 686 let this = self; 687 unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() } 688 } 689 pub fn WriteByte(&self, value: u8) -> ::windows::runtime::Result<()> { 690 let this = self; 691 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() } 692 } 693 pub fn WriteBytes(&self, value: &[<u8 as ::windows::runtime::Abi>::DefaultType]) -> ::windows::runtime::Result<()> { 694 let this = self; 695 unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value.len() as u32, ::std::mem::transmute(value.as_ptr())).ok() } 696 } 697 pub fn WriteBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<()> { 698 let this = self; 699 unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), buffer.into_param().abi()).ok() } 700 } 701 pub fn WriteBufferRange<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, start: u32, count: u32) -> ::windows::runtime::Result<()> { 702 let this = self; 703 unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), buffer.into_param().abi(), start, count).ok() } 704 } 705 pub fn WriteBoolean(&self, value: bool) -> ::windows::runtime::Result<()> { 706 let this = self; 707 unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() } 708 } 709 pub fn WriteGuid<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, value: Param0) -> ::windows::runtime::Result<()> { 710 let this = self; 711 unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() } 712 } 713 pub fn WriteInt16(&self, value: i16) -> ::windows::runtime::Result<()> { 714 let this = self; 715 unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value).ok() } 716 } 717 pub fn WriteInt32(&self, value: i32) -> ::windows::runtime::Result<()> { 718 let this = self; 719 unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value).ok() } 720 } 721 pub fn WriteInt64(&self, value: i64) -> ::windows::runtime::Result<()> { 722 let this = self; 723 unsafe { (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), value).ok() } 724 } 725 pub fn WriteUInt16(&self, value: u16) -> ::windows::runtime::Result<()> { 726 let this = self; 727 unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value).ok() } 728 } 729 pub fn WriteUInt32(&self, value: u32) -> ::windows::runtime::Result<()> { 730 let this = self; 731 unsafe { (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), value).ok() } 732 } 733 pub fn WriteUInt64(&self, value: u64) -> ::windows::runtime::Result<()> { 734 let this = self; 735 unsafe { (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), value).ok() } 736 } 737 pub fn WriteSingle(&self, value: f32) -> ::windows::runtime::Result<()> { 738 let this = self; 739 unsafe { (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), value).ok() } 740 } 741 pub fn WriteDouble(&self, value: f64) -> ::windows::runtime::Result<()> { 742 let this = self; 743 unsafe { (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), value).ok() } 744 } 745 #[cfg(feature = "Foundation")] 746 pub fn WriteDateTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::runtime::Result<()> { 747 let this = self; 748 unsafe { (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() } 749 } 750 #[cfg(feature = "Foundation")] 751 pub fn WriteTimeSpan<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, value: Param0) -> ::windows::runtime::Result<()> { 752 let this = self; 753 unsafe { (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() } 754 } 755 pub fn WriteString<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<u32> { 756 let this = self; 757 unsafe { 758 let mut result__: u32 = ::std::mem::zeroed(); 759 (::windows::runtime::Interface::vtable(this).27)(::std::mem::transmute_copy(this), value.into_param().abi(), &mut result__).from_abi::<u32>(result__) 760 } 761 } 762 pub fn MeasureString<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<u32> { 763 let this = self; 764 unsafe { 765 let mut result__: u32 = ::std::mem::zeroed(); 766 (::windows::runtime::Interface::vtable(this).28)(::std::mem::transmute_copy(this), value.into_param().abi(), &mut result__).from_abi::<u32>(result__) 767 } 768 } 769 #[cfg(feature = "Foundation")] 770 pub fn StoreAsync(&self) -> ::windows::runtime::Result<DataWriterStoreOperation> { 771 let this = self; 772 unsafe { 773 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 774 (::windows::runtime::Interface::vtable(this).29)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DataWriterStoreOperation>(result__) 775 } 776 } 777 #[cfg(feature = "Foundation")] 778 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 779 let this = self; 780 unsafe { 781 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 782 (::windows::runtime::Interface::vtable(this).30)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 783 } 784 } 785 pub fn DetachBuffer(&self) -> ::windows::runtime::Result<IBuffer> { 786 let this = self; 787 unsafe { 788 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 789 (::windows::runtime::Interface::vtable(this).31)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IBuffer>(result__) 790 } 791 } 792 pub fn DetachStream(&self) -> ::windows::runtime::Result<IOutputStream> { 793 let this = self; 794 unsafe { 795 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 796 (::windows::runtime::Interface::vtable(this).32)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IOutputStream>(result__) 797 } 798 } 799 #[cfg(feature = "Foundation")] 800 pub fn Close(&self) -> ::windows::runtime::Result<()> { 801 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 802 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 803 } 804 pub fn CreateDataWriter<'a, Param0: ::windows::runtime::IntoParam<'a, IOutputStream>>(outputstream: Param0) -> ::windows::runtime::Result<DataWriter> { 805 Self::IDataWriterFactory(|this| unsafe { 806 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 807 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), outputstream.into_param().abi(), &mut result__).from_abi::<DataWriter>(result__) 808 }) 809 } 810 pub fn IDataWriterFactory<R, F: FnOnce(&IDataWriterFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 811 static mut SHARED: ::windows::runtime::FactoryCache<DataWriter, IDataWriterFactory> = ::windows::runtime::FactoryCache::new(); 812 unsafe { SHARED.call(callback) } 813 } 814 } 815 unsafe impl ::windows::runtime::RuntimeType for DataWriter { 816 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.DataWriter;{64b89265-d341-4922-b38a-dd4af8808c4e})"); 817 } 818 unsafe impl ::windows::runtime::Interface for DataWriter { 819 type Vtable = IDataWriter_abi; 820 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1689817701, 54081, 18722, [179, 138, 221, 74, 248, 128, 140, 78]); 821 } 822 impl ::windows::runtime::RuntimeName for DataWriter { 823 const NAME: &'static str = "Windows.Storage.Streams.DataWriter"; 824 } 825 impl ::std::convert::From<DataWriter> for ::windows::runtime::IUnknown { 826 fn from(value: DataWriter) -> Self { 827 unsafe { ::std::mem::transmute(value) } 828 } 829 } 830 impl ::std::convert::From<&DataWriter> for ::windows::runtime::IUnknown { 831 fn from(value: &DataWriter) -> Self { 832 ::std::convert::From::from(::std::clone::Clone::clone(value)) 833 } 834 } 835 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DataWriter { 836 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 837 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 838 } 839 } 840 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DataWriter { 841 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 842 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 843 } 844 } 845 impl ::std::convert::From<DataWriter> for ::windows::runtime::IInspectable { 846 fn from(value: DataWriter) -> Self { 847 value.0 848 } 849 } 850 impl ::std::convert::From<&DataWriter> for ::windows::runtime::IInspectable { 851 fn from(value: &DataWriter) -> Self { 852 value.0.clone() 853 } 854 } 855 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DataWriter { 856 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 857 ::windows::runtime::Param::Owned(self.0) 858 } 859 } 860 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DataWriter { 861 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 862 ::windows::runtime::Param::Borrowed(&self.0) 863 } 864 } 865 impl ::std::convert::From<DataWriter> for IDataWriter { 866 fn from(value: DataWriter) -> Self { 867 unsafe { ::std::mem::transmute(value) } 868 } 869 } 870 impl ::std::convert::From<&DataWriter> for IDataWriter { 871 fn from(value: &DataWriter) -> Self { 872 ::std::convert::From::from(::std::clone::Clone::clone(value)) 873 } 874 } 875 impl<'a> ::windows::runtime::IntoParam<'a, IDataWriter> for DataWriter { 876 fn into_param(self) -> ::windows::runtime::Param<'a, IDataWriter> { 877 ::windows::runtime::Param::Owned(::std::convert::Into::<IDataWriter>::into(self)) 878 } 879 } 880 impl<'a> ::windows::runtime::IntoParam<'a, IDataWriter> for &DataWriter { 881 fn into_param(self) -> ::windows::runtime::Param<'a, IDataWriter> { 882 ::windows::runtime::Param::Owned(::std::convert::Into::<IDataWriter>::into(::std::clone::Clone::clone(self))) 883 } 884 } 885 #[cfg(feature = "Foundation")] 886 impl ::std::convert::TryFrom<DataWriter> for super::super::Foundation::IClosable { 887 type Error = ::windows::runtime::Error; 888 fn try_from(value: DataWriter) -> ::windows::runtime::Result<Self> { 889 ::std::convert::TryFrom::try_from(&value) 890 } 891 } 892 #[cfg(feature = "Foundation")] 893 impl ::std::convert::TryFrom<&DataWriter> for super::super::Foundation::IClosable { 894 type Error = ::windows::runtime::Error; 895 fn try_from(value: &DataWriter) -> ::windows::runtime::Result<Self> { 896 ::windows::runtime::Interface::cast(value) 897 } 898 } 899 #[cfg(feature = "Foundation")] 900 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for DataWriter { 901 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 902 ::windows::runtime::IntoParam::into_param(&self) 903 } 904 } 905 #[cfg(feature = "Foundation")] 906 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &DataWriter { 907 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 908 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 909 } 910 } 911 unsafe impl ::std::marker::Send for DataWriter {} 912 unsafe impl ::std::marker::Sync for DataWriter {} 913 #[cfg(feature = "Foundation")] 914 #[repr(transparent)] 915 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 916 pub struct DataWriterStoreOperation(::windows::runtime::IInspectable); 917 #[cfg(feature = "Foundation")] 918 impl DataWriterStoreOperation { 919 #[cfg(feature = "Foundation")] 920 pub fn SetCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::AsyncOperationCompletedHandler<u32>>>(&self, handler: Param0) -> ::windows::runtime::Result<()> { 921 let this = self; 922 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), handler.into_param().abi()).ok() } 923 } 924 #[cfg(feature = "Foundation")] 925 pub fn Completed(&self) -> ::windows::runtime::Result<super::super::Foundation::AsyncOperationCompletedHandler<u32>> { 926 let this = self; 927 unsafe { 928 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 929 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::AsyncOperationCompletedHandler<u32>>(result__) 930 } 931 } 932 #[cfg(feature = "Foundation")] 933 pub fn GetResults(&self) -> ::windows::runtime::Result<u32> { 934 let this = self; 935 unsafe { 936 let mut result__: u32 = ::std::mem::zeroed(); 937 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 938 } 939 } 940 #[cfg(feature = "Foundation")] 941 pub fn Id(&self) -> ::windows::runtime::Result<u32> { 942 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 943 unsafe { 944 let mut result__: u32 = ::std::mem::zeroed(); 945 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 946 } 947 } 948 #[cfg(feature = "Foundation")] 949 pub fn Status(&self) -> ::windows::runtime::Result<super::super::Foundation::AsyncStatus> { 950 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 951 unsafe { 952 let mut result__: super::super::Foundation::AsyncStatus = ::std::mem::zeroed(); 953 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::AsyncStatus>(result__) 954 } 955 } 956 #[cfg(feature = "Foundation")] 957 pub fn ErrorCode(&self) -> ::windows::runtime::Result<::windows::runtime::HRESULT> { 958 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 959 unsafe { 960 let mut result__: ::windows::runtime::HRESULT = ::std::mem::zeroed(); 961 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HRESULT>(result__) 962 } 963 } 964 #[cfg(feature = "Foundation")] 965 pub fn Cancel(&self) -> ::windows::runtime::Result<()> { 966 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 967 unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this)).ok() } 968 } 969 #[cfg(feature = "Foundation")] 970 pub fn Close(&self) -> ::windows::runtime::Result<()> { 971 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IAsyncInfo>(self)?; 972 unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this)).ok() } 973 } 974 pub fn get(&self) -> ::windows::runtime::Result<u32> { 975 if self.Status()? == super::super::Foundation::AsyncStatus::Started { 976 let (waiter, signaler) = ::windows::runtime::Waiter::new(); 977 self.SetCompleted(super::super::Foundation::AsyncOperationCompletedHandler::new(move |_sender, _args| { 978 unsafe { 979 signaler.signal(); 980 } 981 Ok(()) 982 }))?; 983 } 984 self.GetResults() 985 } 986 } 987 #[cfg(feature = "Foundation")] 988 unsafe impl ::windows::runtime::RuntimeType for DataWriterStoreOperation { 989 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.DataWriterStoreOperation;pinterface({9fc2b0bb-e446-44e2-aa61-9cab8f636af2};u4))"); 990 } 991 #[cfg(feature = "Foundation")] 992 unsafe impl ::windows::runtime::Interface for DataWriterStoreOperation { 993 type Vtable = super::super::Foundation::IAsyncOperation_abi<u32>; 994 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_signature(<super::super::Foundation::IAsyncOperation<u32> as ::windows::runtime::RuntimeType>::SIGNATURE); 995 } 996 #[cfg(feature = "Foundation")] 997 impl ::windows::runtime::RuntimeName for DataWriterStoreOperation { 998 const NAME: &'static str = "Windows.Storage.Streams.DataWriterStoreOperation"; 999 } 1000 impl ::std::future::Future for DataWriterStoreOperation { 1001 type Output = ::windows::runtime::Result<u32>; 1002 fn poll(self: ::std::pin::Pin<&mut Self>, context: &mut ::std::task::Context) -> ::std::task::Poll<Self::Output> { 1003 if self.Status()? == super::super::Foundation::AsyncStatus::Started { 1004 let waker = context.waker().clone(); 1005 let _ = self.SetCompleted(super::super::Foundation::AsyncOperationCompletedHandler::new(move |_sender, _args| { 1006 waker.wake_by_ref(); 1007 Ok(()) 1008 })); 1009 ::std::task::Poll::Pending 1010 } else { 1011 ::std::task::Poll::Ready(self.GetResults()) 1012 } 1013 } 1014 } 1015 #[cfg(feature = "Foundation")] 1016 impl ::std::convert::From<DataWriterStoreOperation> for ::windows::runtime::IUnknown { 1017 fn from(value: DataWriterStoreOperation) -> Self { 1018 unsafe { ::std::mem::transmute(value) } 1019 } 1020 } 1021 #[cfg(feature = "Foundation")] 1022 impl ::std::convert::From<&DataWriterStoreOperation> for ::windows::runtime::IUnknown { 1023 fn from(value: &DataWriterStoreOperation) -> Self { 1024 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1025 } 1026 } 1027 #[cfg(feature = "Foundation")] 1028 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DataWriterStoreOperation { 1029 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1030 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 1031 } 1032 } 1033 #[cfg(feature = "Foundation")] 1034 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DataWriterStoreOperation { 1035 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1036 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 1037 } 1038 } 1039 #[cfg(feature = "Foundation")] 1040 impl ::std::convert::From<DataWriterStoreOperation> for ::windows::runtime::IInspectable { 1041 fn from(value: DataWriterStoreOperation) -> Self { 1042 value.0 1043 } 1044 } 1045 #[cfg(feature = "Foundation")] 1046 impl ::std::convert::From<&DataWriterStoreOperation> for ::windows::runtime::IInspectable { 1047 fn from(value: &DataWriterStoreOperation) -> Self { 1048 value.0.clone() 1049 } 1050 } 1051 #[cfg(feature = "Foundation")] 1052 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DataWriterStoreOperation { 1053 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1054 ::windows::runtime::Param::Owned(self.0) 1055 } 1056 } 1057 #[cfg(feature = "Foundation")] 1058 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DataWriterStoreOperation { 1059 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1060 ::windows::runtime::Param::Borrowed(&self.0) 1061 } 1062 } 1063 #[cfg(feature = "Foundation")] 1064 impl ::std::convert::From<DataWriterStoreOperation> for super::super::Foundation::IAsyncOperation<u32> { 1065 fn from(value: DataWriterStoreOperation) -> Self { 1066 unsafe { ::std::mem::transmute(value) } 1067 } 1068 } 1069 #[cfg(feature = "Foundation")] 1070 impl ::std::convert::From<&DataWriterStoreOperation> for super::super::Foundation::IAsyncOperation<u32> { 1071 fn from(value: &DataWriterStoreOperation) -> Self { 1072 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1073 } 1074 } 1075 #[cfg(feature = "Foundation")] 1076 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncOperation<u32>> for DataWriterStoreOperation { 1077 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncOperation<u32>> { 1078 ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::Foundation::IAsyncOperation<u32>>::into(self)) 1079 } 1080 } 1081 #[cfg(feature = "Foundation")] 1082 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncOperation<u32>> for &DataWriterStoreOperation { 1083 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncOperation<u32>> { 1084 ::windows::runtime::Param::Owned(::std::convert::Into::<super::super::Foundation::IAsyncOperation<u32>>::into(::std::clone::Clone::clone(self))) 1085 } 1086 } 1087 #[cfg(feature = "Foundation")] 1088 impl ::std::convert::TryFrom<DataWriterStoreOperation> for super::super::Foundation::IAsyncInfo { 1089 type Error = ::windows::runtime::Error; 1090 fn try_from(value: DataWriterStoreOperation) -> ::windows::runtime::Result<Self> { 1091 ::std::convert::TryFrom::try_from(&value) 1092 } 1093 } 1094 #[cfg(feature = "Foundation")] 1095 impl ::std::convert::TryFrom<&DataWriterStoreOperation> for super::super::Foundation::IAsyncInfo { 1096 type Error = ::windows::runtime::Error; 1097 fn try_from(value: &DataWriterStoreOperation) -> ::windows::runtime::Result<Self> { 1098 ::windows::runtime::Interface::cast(value) 1099 } 1100 } 1101 #[cfg(feature = "Foundation")] 1102 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncInfo> for DataWriterStoreOperation { 1103 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncInfo> { 1104 ::windows::runtime::IntoParam::into_param(&self) 1105 } 1106 } 1107 #[cfg(feature = "Foundation")] 1108 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IAsyncInfo> for &DataWriterStoreOperation { 1109 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IAsyncInfo> { 1110 ::std::convert::TryInto::<super::super::Foundation::IAsyncInfo>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 1111 } 1112 } 1113 #[cfg(feature = "Foundation")] 1114 unsafe impl ::std::marker::Send for DataWriterStoreOperation {} 1115 #[cfg(feature = "Foundation")] 1116 unsafe impl ::std::marker::Sync for DataWriterStoreOperation {} 1117 #[repr(transparent)] 1118 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1119 pub struct FileInputStream(::windows::runtime::IInspectable); 1120 impl FileInputStream { 1121 #[cfg(feature = "Foundation")] 1122 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 1123 let this = self; 1124 unsafe { 1125 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1126 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 1127 } 1128 } 1129 #[cfg(feature = "Foundation")] 1130 pub fn Close(&self) -> ::windows::runtime::Result<()> { 1131 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 1132 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 1133 } 1134 } 1135 unsafe impl ::windows::runtime::RuntimeType for FileInputStream { 1136 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.FileInputStream;{905a0fe2-bc53-11df-8c49-001e4fc686da})"); 1137 } 1138 unsafe impl ::windows::runtime::Interface for FileInputStream { 1139 type Vtable = IInputStream_abi; 1140 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821410, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 1141 } 1142 impl ::windows::runtime::RuntimeName for FileInputStream { 1143 const NAME: &'static str = "Windows.Storage.Streams.FileInputStream"; 1144 } 1145 impl ::std::convert::From<FileInputStream> for ::windows::runtime::IUnknown { 1146 fn from(value: FileInputStream) -> Self { 1147 unsafe { ::std::mem::transmute(value) } 1148 } 1149 } 1150 impl ::std::convert::From<&FileInputStream> for ::windows::runtime::IUnknown { 1151 fn from(value: &FileInputStream) -> Self { 1152 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1153 } 1154 } 1155 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for FileInputStream { 1156 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1157 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 1158 } 1159 } 1160 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &FileInputStream { 1161 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1162 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 1163 } 1164 } 1165 impl ::std::convert::From<FileInputStream> for ::windows::runtime::IInspectable { 1166 fn from(value: FileInputStream) -> Self { 1167 value.0 1168 } 1169 } 1170 impl ::std::convert::From<&FileInputStream> for ::windows::runtime::IInspectable { 1171 fn from(value: &FileInputStream) -> Self { 1172 value.0.clone() 1173 } 1174 } 1175 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for FileInputStream { 1176 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1177 ::windows::runtime::Param::Owned(self.0) 1178 } 1179 } 1180 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a FileInputStream { 1181 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1182 ::windows::runtime::Param::Borrowed(&self.0) 1183 } 1184 } 1185 impl ::std::convert::From<FileInputStream> for IInputStream { 1186 fn from(value: FileInputStream) -> Self { 1187 unsafe { ::std::mem::transmute(value) } 1188 } 1189 } 1190 impl ::std::convert::From<&FileInputStream> for IInputStream { 1191 fn from(value: &FileInputStream) -> Self { 1192 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1193 } 1194 } 1195 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for FileInputStream { 1196 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 1197 ::windows::runtime::Param::Owned(::std::convert::Into::<IInputStream>::into(self)) 1198 } 1199 } 1200 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for &FileInputStream { 1201 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 1202 ::windows::runtime::Param::Owned(::std::convert::Into::<IInputStream>::into(::std::clone::Clone::clone(self))) 1203 } 1204 } 1205 #[cfg(feature = "Foundation")] 1206 impl ::std::convert::TryFrom<FileInputStream> for super::super::Foundation::IClosable { 1207 type Error = ::windows::runtime::Error; 1208 fn try_from(value: FileInputStream) -> ::windows::runtime::Result<Self> { 1209 ::std::convert::TryFrom::try_from(&value) 1210 } 1211 } 1212 #[cfg(feature = "Foundation")] 1213 impl ::std::convert::TryFrom<&FileInputStream> for super::super::Foundation::IClosable { 1214 type Error = ::windows::runtime::Error; 1215 fn try_from(value: &FileInputStream) -> ::windows::runtime::Result<Self> { 1216 ::windows::runtime::Interface::cast(value) 1217 } 1218 } 1219 #[cfg(feature = "Foundation")] 1220 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for FileInputStream { 1221 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 1222 ::windows::runtime::IntoParam::into_param(&self) 1223 } 1224 } 1225 #[cfg(feature = "Foundation")] 1226 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &FileInputStream { 1227 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 1228 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 1229 } 1230 } 1231 unsafe impl ::std::marker::Send for FileInputStream {} 1232 unsafe impl ::std::marker::Sync for FileInputStream {} 1233 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)] 1234 #[repr(transparent)] 1235 pub struct FileOpenDisposition(pub i32); 1236 impl FileOpenDisposition { 1237 pub const OpenExisting: FileOpenDisposition = FileOpenDisposition(0i32); 1238 pub const OpenAlways: FileOpenDisposition = FileOpenDisposition(1i32); 1239 pub const CreateNew: FileOpenDisposition = FileOpenDisposition(2i32); 1240 pub const CreateAlways: FileOpenDisposition = FileOpenDisposition(3i32); 1241 pub const TruncateExisting: FileOpenDisposition = FileOpenDisposition(4i32); 1242 } 1243 impl ::std::convert::From<i32> for FileOpenDisposition { 1244 fn from(value: i32) -> Self { 1245 Self(value) 1246 } 1247 } 1248 unsafe impl ::windows::runtime::Abi for FileOpenDisposition { 1249 type Abi = Self; 1250 type DefaultType = Self; 1251 } 1252 unsafe impl ::windows::runtime::RuntimeType for FileOpenDisposition { 1253 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.Streams.FileOpenDisposition;i4)"); 1254 } 1255 #[repr(transparent)] 1256 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1257 pub struct FileOutputStream(::windows::runtime::IInspectable); 1258 impl FileOutputStream { 1259 #[cfg(feature = "Foundation")] 1260 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 1261 let this = self; 1262 unsafe { 1263 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1264 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 1265 } 1266 } 1267 #[cfg(feature = "Foundation")] 1268 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 1269 let this = self; 1270 unsafe { 1271 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1272 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 1273 } 1274 } 1275 #[cfg(feature = "Foundation")] 1276 pub fn Close(&self) -> ::windows::runtime::Result<()> { 1277 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 1278 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 1279 } 1280 } 1281 unsafe impl ::windows::runtime::RuntimeType for FileOutputStream { 1282 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.FileOutputStream;{905a0fe6-bc53-11df-8c49-001e4fc686da})"); 1283 } 1284 unsafe impl ::windows::runtime::Interface for FileOutputStream { 1285 type Vtable = IOutputStream_abi; 1286 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821414, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 1287 } 1288 impl ::windows::runtime::RuntimeName for FileOutputStream { 1289 const NAME: &'static str = "Windows.Storage.Streams.FileOutputStream"; 1290 } 1291 impl ::std::convert::From<FileOutputStream> for ::windows::runtime::IUnknown { 1292 fn from(value: FileOutputStream) -> Self { 1293 unsafe { ::std::mem::transmute(value) } 1294 } 1295 } 1296 impl ::std::convert::From<&FileOutputStream> for ::windows::runtime::IUnknown { 1297 fn from(value: &FileOutputStream) -> Self { 1298 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1299 } 1300 } 1301 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for FileOutputStream { 1302 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1303 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 1304 } 1305 } 1306 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &FileOutputStream { 1307 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1308 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 1309 } 1310 } 1311 impl ::std::convert::From<FileOutputStream> for ::windows::runtime::IInspectable { 1312 fn from(value: FileOutputStream) -> Self { 1313 value.0 1314 } 1315 } 1316 impl ::std::convert::From<&FileOutputStream> for ::windows::runtime::IInspectable { 1317 fn from(value: &FileOutputStream) -> Self { 1318 value.0.clone() 1319 } 1320 } 1321 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for FileOutputStream { 1322 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1323 ::windows::runtime::Param::Owned(self.0) 1324 } 1325 } 1326 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a FileOutputStream { 1327 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1328 ::windows::runtime::Param::Borrowed(&self.0) 1329 } 1330 } 1331 impl ::std::convert::From<FileOutputStream> for IOutputStream { 1332 fn from(value: FileOutputStream) -> Self { 1333 unsafe { ::std::mem::transmute(value) } 1334 } 1335 } 1336 impl ::std::convert::From<&FileOutputStream> for IOutputStream { 1337 fn from(value: &FileOutputStream) -> Self { 1338 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1339 } 1340 } 1341 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for FileOutputStream { 1342 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 1343 ::windows::runtime::Param::Owned(::std::convert::Into::<IOutputStream>::into(self)) 1344 } 1345 } 1346 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for &FileOutputStream { 1347 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 1348 ::windows::runtime::Param::Owned(::std::convert::Into::<IOutputStream>::into(::std::clone::Clone::clone(self))) 1349 } 1350 } 1351 #[cfg(feature = "Foundation")] 1352 impl ::std::convert::TryFrom<FileOutputStream> for super::super::Foundation::IClosable { 1353 type Error = ::windows::runtime::Error; 1354 fn try_from(value: FileOutputStream) -> ::windows::runtime::Result<Self> { 1355 ::std::convert::TryFrom::try_from(&value) 1356 } 1357 } 1358 #[cfg(feature = "Foundation")] 1359 impl ::std::convert::TryFrom<&FileOutputStream> for super::super::Foundation::IClosable { 1360 type Error = ::windows::runtime::Error; 1361 fn try_from(value: &FileOutputStream) -> ::windows::runtime::Result<Self> { 1362 ::windows::runtime::Interface::cast(value) 1363 } 1364 } 1365 #[cfg(feature = "Foundation")] 1366 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for FileOutputStream { 1367 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 1368 ::windows::runtime::IntoParam::into_param(&self) 1369 } 1370 } 1371 #[cfg(feature = "Foundation")] 1372 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &FileOutputStream { 1373 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 1374 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 1375 } 1376 } 1377 unsafe impl ::std::marker::Send for FileOutputStream {} 1378 unsafe impl ::std::marker::Sync for FileOutputStream {} 1379 #[repr(transparent)] 1380 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1381 pub struct FileRandomAccessStream(::windows::runtime::IInspectable); 1382 impl FileRandomAccessStream { 1383 pub fn Size(&self) -> ::windows::runtime::Result<u64> { 1384 let this = self; 1385 unsafe { 1386 let mut result__: u64 = ::std::mem::zeroed(); 1387 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 1388 } 1389 } 1390 pub fn SetSize(&self, value: u64) -> ::windows::runtime::Result<()> { 1391 let this = self; 1392 unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() } 1393 } 1394 pub fn GetInputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IInputStream> { 1395 let this = self; 1396 unsafe { 1397 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1398 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IInputStream>(result__) 1399 } 1400 } 1401 pub fn GetOutputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IOutputStream> { 1402 let this = self; 1403 unsafe { 1404 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1405 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IOutputStream>(result__) 1406 } 1407 } 1408 pub fn Position(&self) -> ::windows::runtime::Result<u64> { 1409 let this = self; 1410 unsafe { 1411 let mut result__: u64 = ::std::mem::zeroed(); 1412 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 1413 } 1414 } 1415 pub fn Seek(&self, position: u64) -> ::windows::runtime::Result<()> { 1416 let this = self; 1417 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), position).ok() } 1418 } 1419 pub fn CloneStream(&self) -> ::windows::runtime::Result<IRandomAccessStream> { 1420 let this = self; 1421 unsafe { 1422 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1423 (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IRandomAccessStream>(result__) 1424 } 1425 } 1426 pub fn CanRead(&self) -> ::windows::runtime::Result<bool> { 1427 let this = self; 1428 unsafe { 1429 let mut result__: bool = ::std::mem::zeroed(); 1430 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 1431 } 1432 } 1433 pub fn CanWrite(&self) -> ::windows::runtime::Result<bool> { 1434 let this = self; 1435 unsafe { 1436 let mut result__: bool = ::std::mem::zeroed(); 1437 (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 1438 } 1439 } 1440 #[cfg(feature = "Foundation")] 1441 pub fn Close(&self) -> ::windows::runtime::Result<()> { 1442 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 1443 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 1444 } 1445 #[cfg(feature = "Foundation")] 1446 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 1447 let this = &::windows::runtime::Interface::cast::<IInputStream>(self)?; 1448 unsafe { 1449 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1450 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 1451 } 1452 } 1453 #[cfg(feature = "Foundation")] 1454 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 1455 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 1456 unsafe { 1457 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1458 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 1459 } 1460 } 1461 #[cfg(feature = "Foundation")] 1462 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 1463 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 1464 unsafe { 1465 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1466 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 1467 } 1468 } 1469 #[cfg(feature = "Foundation")] 1470 pub fn OpenAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(filepath: Param0, accessmode: super::FileAccessMode) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<IRandomAccessStream>> { 1471 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1472 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1473 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), filepath.into_param().abi(), accessmode, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<IRandomAccessStream>>(result__) 1474 }) 1475 } 1476 #[cfg(feature = "Foundation")] 1477 pub fn OpenWithOptionsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(filepath: Param0, accessmode: super::FileAccessMode, sharingoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<IRandomAccessStream>> { 1478 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1479 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1480 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), filepath.into_param().abi(), accessmode, sharingoptions, opendisposition, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<IRandomAccessStream>>(result__) 1481 }) 1482 } 1483 #[cfg(feature = "Foundation")] 1484 pub fn OpenTransactedWriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(filepath: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>> { 1485 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1486 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1487 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), filepath.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>>(result__) 1488 }) 1489 } 1490 #[cfg(feature = "Foundation")] 1491 pub fn OpenTransactedWriteWithOptionsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(filepath: Param0, openoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>> { 1492 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1493 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1494 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), filepath.into_param().abi(), openoptions, opendisposition, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>>(result__) 1495 }) 1496 } 1497 #[cfg(all(feature = "Foundation", feature = "System"))] 1498 pub fn OpenForUserAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::User>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(user: Param0, filepath: Param1, accessmode: super::FileAccessMode) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<IRandomAccessStream>> { 1499 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1500 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1501 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), user.into_param().abi(), filepath.into_param().abi(), accessmode, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<IRandomAccessStream>>(result__) 1502 }) 1503 } 1504 #[cfg(all(feature = "Foundation", feature = "System"))] 1505 pub fn OpenForUserWithOptionsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::User>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(user: Param0, filepath: Param1, accessmode: super::FileAccessMode, sharingoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<IRandomAccessStream>> { 1506 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1507 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1508 (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), user.into_param().abi(), filepath.into_param().abi(), accessmode, sharingoptions, opendisposition, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<IRandomAccessStream>>(result__) 1509 }) 1510 } 1511 #[cfg(all(feature = "Foundation", feature = "System"))] 1512 pub fn OpenTransactedWriteForUserAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::User>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(user: Param0, filepath: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>> { 1513 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1514 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1515 (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), user.into_param().abi(), filepath.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>>(result__) 1516 }) 1517 } 1518 #[cfg(all(feature = "Foundation", feature = "System"))] 1519 pub fn OpenTransactedWriteForUserWithOptionsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::System::User>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(user: Param0, filepath: Param1, openoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>> { 1520 Self::IFileRandomAccessStreamStatics(|this| unsafe { 1521 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1522 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), user.into_param().abi(), filepath.into_param().abi(), openoptions, opendisposition, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::StorageStreamTransaction>>(result__) 1523 }) 1524 } 1525 pub fn IFileRandomAccessStreamStatics<R, F: FnOnce(&IFileRandomAccessStreamStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 1526 static mut SHARED: ::windows::runtime::FactoryCache<FileRandomAccessStream, IFileRandomAccessStreamStatics> = ::windows::runtime::FactoryCache::new(); 1527 unsafe { SHARED.call(callback) } 1528 } 1529 } 1530 unsafe impl ::windows::runtime::RuntimeType for FileRandomAccessStream { 1531 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.FileRandomAccessStream;{905a0fe1-bc53-11df-8c49-001e4fc686da})"); 1532 } 1533 unsafe impl ::windows::runtime::Interface for FileRandomAccessStream { 1534 type Vtable = IRandomAccessStream_abi; 1535 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821409, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 1536 } 1537 impl ::windows::runtime::RuntimeName for FileRandomAccessStream { 1538 const NAME: &'static str = "Windows.Storage.Streams.FileRandomAccessStream"; 1539 } 1540 impl ::std::convert::From<FileRandomAccessStream> for ::windows::runtime::IUnknown { 1541 fn from(value: FileRandomAccessStream) -> Self { 1542 unsafe { ::std::mem::transmute(value) } 1543 } 1544 } 1545 impl ::std::convert::From<&FileRandomAccessStream> for ::windows::runtime::IUnknown { 1546 fn from(value: &FileRandomAccessStream) -> Self { 1547 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1548 } 1549 } 1550 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for FileRandomAccessStream { 1551 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1552 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 1553 } 1554 } 1555 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &FileRandomAccessStream { 1556 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1557 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 1558 } 1559 } 1560 impl ::std::convert::From<FileRandomAccessStream> for ::windows::runtime::IInspectable { 1561 fn from(value: FileRandomAccessStream) -> Self { 1562 value.0 1563 } 1564 } 1565 impl ::std::convert::From<&FileRandomAccessStream> for ::windows::runtime::IInspectable { 1566 fn from(value: &FileRandomAccessStream) -> Self { 1567 value.0.clone() 1568 } 1569 } 1570 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for FileRandomAccessStream { 1571 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1572 ::windows::runtime::Param::Owned(self.0) 1573 } 1574 } 1575 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a FileRandomAccessStream { 1576 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1577 ::windows::runtime::Param::Borrowed(&self.0) 1578 } 1579 } 1580 impl ::std::convert::From<FileRandomAccessStream> for IRandomAccessStream { 1581 fn from(value: FileRandomAccessStream) -> Self { 1582 unsafe { ::std::mem::transmute(value) } 1583 } 1584 } 1585 impl ::std::convert::From<&FileRandomAccessStream> for IRandomAccessStream { 1586 fn from(value: &FileRandomAccessStream) -> Self { 1587 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1588 } 1589 } 1590 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for FileRandomAccessStream { 1591 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 1592 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStream>::into(self)) 1593 } 1594 } 1595 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for &FileRandomAccessStream { 1596 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 1597 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStream>::into(::std::clone::Clone::clone(self))) 1598 } 1599 } 1600 #[cfg(feature = "Foundation")] 1601 impl ::std::convert::TryFrom<FileRandomAccessStream> for super::super::Foundation::IClosable { 1602 type Error = ::windows::runtime::Error; 1603 fn try_from(value: FileRandomAccessStream) -> ::windows::runtime::Result<Self> { 1604 ::std::convert::TryFrom::try_from(&value) 1605 } 1606 } 1607 #[cfg(feature = "Foundation")] 1608 impl ::std::convert::TryFrom<&FileRandomAccessStream> for super::super::Foundation::IClosable { 1609 type Error = ::windows::runtime::Error; 1610 fn try_from(value: &FileRandomAccessStream) -> ::windows::runtime::Result<Self> { 1611 ::windows::runtime::Interface::cast(value) 1612 } 1613 } 1614 #[cfg(feature = "Foundation")] 1615 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for FileRandomAccessStream { 1616 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 1617 ::windows::runtime::IntoParam::into_param(&self) 1618 } 1619 } 1620 #[cfg(feature = "Foundation")] 1621 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &FileRandomAccessStream { 1622 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 1623 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 1624 } 1625 } 1626 impl ::std::convert::TryFrom<FileRandomAccessStream> for IInputStream { 1627 type Error = ::windows::runtime::Error; 1628 fn try_from(value: FileRandomAccessStream) -> ::windows::runtime::Result<Self> { 1629 ::std::convert::TryFrom::try_from(&value) 1630 } 1631 } 1632 impl ::std::convert::TryFrom<&FileRandomAccessStream> for IInputStream { 1633 type Error = ::windows::runtime::Error; 1634 fn try_from(value: &FileRandomAccessStream) -> ::windows::runtime::Result<Self> { 1635 ::windows::runtime::Interface::cast(value) 1636 } 1637 } 1638 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for FileRandomAccessStream { 1639 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 1640 ::windows::runtime::IntoParam::into_param(&self) 1641 } 1642 } 1643 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for &FileRandomAccessStream { 1644 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 1645 ::std::convert::TryInto::<IInputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 1646 } 1647 } 1648 impl ::std::convert::TryFrom<FileRandomAccessStream> for IOutputStream { 1649 type Error = ::windows::runtime::Error; 1650 fn try_from(value: FileRandomAccessStream) -> ::windows::runtime::Result<Self> { 1651 ::std::convert::TryFrom::try_from(&value) 1652 } 1653 } 1654 impl ::std::convert::TryFrom<&FileRandomAccessStream> for IOutputStream { 1655 type Error = ::windows::runtime::Error; 1656 fn try_from(value: &FileRandomAccessStream) -> ::windows::runtime::Result<Self> { 1657 ::windows::runtime::Interface::cast(value) 1658 } 1659 } 1660 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for FileRandomAccessStream { 1661 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 1662 ::windows::runtime::IntoParam::into_param(&self) 1663 } 1664 } 1665 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for &FileRandomAccessStream { 1666 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 1667 ::std::convert::TryInto::<IOutputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 1668 } 1669 } 1670 unsafe impl ::std::marker::Send for FileRandomAccessStream {} 1671 unsafe impl ::std::marker::Sync for FileRandomAccessStream {} 1672 #[repr(transparent)] 1673 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1674 pub struct IBuffer(::windows::runtime::IInspectable); 1675 unsafe impl ::windows::runtime::Interface for IBuffer { 1676 type Vtable = IBuffer_abi; 1677 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821408, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 1678 } 1679 impl IBuffer { 1680 pub fn Capacity(&self) -> ::windows::runtime::Result<u32> { 1681 let this = self; 1682 unsafe { 1683 let mut result__: u32 = ::std::mem::zeroed(); 1684 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 1685 } 1686 } 1687 pub fn Length(&self) -> ::windows::runtime::Result<u32> { 1688 let this = self; 1689 unsafe { 1690 let mut result__: u32 = ::std::mem::zeroed(); 1691 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 1692 } 1693 } 1694 pub fn SetLength(&self, value: u32) -> ::windows::runtime::Result<()> { 1695 let this = self; 1696 unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() } 1697 } 1698 } 1699 unsafe impl ::windows::runtime::RuntimeType for IBuffer { 1700 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{905a0fe0-bc53-11df-8c49-001e4fc686da}"); 1701 } 1702 impl ::std::convert::From<IBuffer> for ::windows::runtime::IUnknown { 1703 fn from(value: IBuffer) -> Self { 1704 unsafe { ::std::mem::transmute(value) } 1705 } 1706 } 1707 impl ::std::convert::From<&IBuffer> for ::windows::runtime::IUnknown { 1708 fn from(value: &IBuffer) -> Self { 1709 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1710 } 1711 } 1712 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IBuffer { 1713 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1714 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 1715 } 1716 } 1717 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IBuffer { 1718 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1719 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 1720 } 1721 } 1722 impl ::std::convert::From<IBuffer> for ::windows::runtime::IInspectable { 1723 fn from(value: IBuffer) -> Self { 1724 value.0 1725 } 1726 } 1727 impl ::std::convert::From<&IBuffer> for ::windows::runtime::IInspectable { 1728 fn from(value: &IBuffer) -> Self { 1729 value.0.clone() 1730 } 1731 } 1732 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IBuffer { 1733 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1734 ::windows::runtime::Param::Owned(self.0) 1735 } 1736 } 1737 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IBuffer { 1738 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1739 ::windows::runtime::Param::Borrowed(&self.0) 1740 } 1741 } 1742 #[repr(C)] 1743 #[doc(hidden)] 1744 pub struct IBuffer_abi( 1745 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1746 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1747 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1748 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 1749 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1750 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 1751 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT, 1752 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT, 1753 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT, 1754 ); 1755 #[repr(transparent)] 1756 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1757 #[doc(hidden)] 1758 pub struct IBufferFactory(::windows::runtime::IInspectable); 1759 unsafe impl ::windows::runtime::Interface for IBufferFactory { 1760 type Vtable = IBufferFactory_abi; 1761 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1907331405, 49423, 18507, [188, 80, 20, 188, 98, 59, 58, 39]); 1762 } 1763 #[repr(C)] 1764 #[doc(hidden)] 1765 pub struct IBufferFactory_abi( 1766 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1767 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1768 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1769 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 1770 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1771 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 1772 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, capacity: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1773 ); 1774 #[repr(transparent)] 1775 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1776 #[doc(hidden)] 1777 pub struct IBufferStatics(::windows::runtime::IInspectable); 1778 unsafe impl ::windows::runtime::Interface for IBufferStatics { 1779 type Vtable = IBufferStatics_abi; 1780 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3909215835, 55062, 18266, [169, 10, 175, 114, 41, 177, 231, 65]); 1781 } 1782 #[repr(C)] 1783 #[doc(hidden)] 1784 pub struct IBufferStatics_abi( 1785 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1786 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1787 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1788 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 1789 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1790 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 1791 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, input: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1792 #[cfg(not(feature = "Foundation"))] usize, 1793 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, input: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1794 #[cfg(not(feature = "Foundation"))] usize, 1795 ); 1796 #[repr(transparent)] 1797 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1798 pub struct IContentTypeProvider(::windows::runtime::IInspectable); 1799 unsafe impl ::windows::runtime::Interface for IContentTypeProvider { 1800 type Vtable = IContentTypeProvider_abi; 1801 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2547030181, 15257, 19945, [136, 165, 225, 29, 47, 80, 199, 149]); 1802 } 1803 impl IContentTypeProvider { 1804 pub fn ContentType(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> { 1805 let this = self; 1806 unsafe { 1807 let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed(); 1808 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__) 1809 } 1810 } 1811 } 1812 unsafe impl ::windows::runtime::RuntimeType for IContentTypeProvider { 1813 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{97d098a5-3b99-4de9-88a5-e11d2f50c795}"); 1814 } 1815 impl ::std::convert::From<IContentTypeProvider> for ::windows::runtime::IUnknown { 1816 fn from(value: IContentTypeProvider) -> Self { 1817 unsafe { ::std::mem::transmute(value) } 1818 } 1819 } 1820 impl ::std::convert::From<&IContentTypeProvider> for ::windows::runtime::IUnknown { 1821 fn from(value: &IContentTypeProvider) -> Self { 1822 ::std::convert::From::from(::std::clone::Clone::clone(value)) 1823 } 1824 } 1825 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IContentTypeProvider { 1826 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1827 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 1828 } 1829 } 1830 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IContentTypeProvider { 1831 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 1832 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 1833 } 1834 } 1835 impl ::std::convert::From<IContentTypeProvider> for ::windows::runtime::IInspectable { 1836 fn from(value: IContentTypeProvider) -> Self { 1837 value.0 1838 } 1839 } 1840 impl ::std::convert::From<&IContentTypeProvider> for ::windows::runtime::IInspectable { 1841 fn from(value: &IContentTypeProvider) -> Self { 1842 value.0.clone() 1843 } 1844 } 1845 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IContentTypeProvider { 1846 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1847 ::windows::runtime::Param::Owned(self.0) 1848 } 1849 } 1850 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IContentTypeProvider { 1851 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 1852 ::windows::runtime::Param::Borrowed(&self.0) 1853 } 1854 } 1855 #[repr(C)] 1856 #[doc(hidden)] 1857 pub struct IContentTypeProvider_abi( 1858 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1859 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1860 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 1861 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 1862 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 1863 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 1864 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT, 1865 ); 1866 #[repr(transparent)] 1867 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 1868 pub struct IDataReader(::windows::runtime::IInspectable); 1869 unsafe impl ::windows::runtime::Interface for IDataReader { 1870 type Vtable = IDataReader_abi; 1871 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3803512873, 46273, 17172, [164, 184, 251, 129, 58, 47, 39, 94]); 1872 } 1873 impl IDataReader { 1874 pub fn UnconsumedBufferLength(&self) -> ::windows::runtime::Result<u32> { 1875 let this = self; 1876 unsafe { 1877 let mut result__: u32 = ::std::mem::zeroed(); 1878 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 1879 } 1880 } 1881 pub fn UnicodeEncoding(&self) -> ::windows::runtime::Result<UnicodeEncoding> { 1882 let this = self; 1883 unsafe { 1884 let mut result__: UnicodeEncoding = ::std::mem::zeroed(); 1885 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UnicodeEncoding>(result__) 1886 } 1887 } 1888 pub fn SetUnicodeEncoding(&self, value: UnicodeEncoding) -> ::windows::runtime::Result<()> { 1889 let this = self; 1890 unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() } 1891 } 1892 pub fn ByteOrder(&self) -> ::windows::runtime::Result<ByteOrder> { 1893 let this = self; 1894 unsafe { 1895 let mut result__: ByteOrder = ::std::mem::zeroed(); 1896 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ByteOrder>(result__) 1897 } 1898 } 1899 pub fn SetByteOrder(&self, value: ByteOrder) -> ::windows::runtime::Result<()> { 1900 let this = self; 1901 unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() } 1902 } 1903 pub fn InputStreamOptions(&self) -> ::windows::runtime::Result<InputStreamOptions> { 1904 let this = self; 1905 unsafe { 1906 let mut result__: InputStreamOptions = ::std::mem::zeroed(); 1907 (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<InputStreamOptions>(result__) 1908 } 1909 } 1910 pub fn SetInputStreamOptions(&self, value: InputStreamOptions) -> ::windows::runtime::Result<()> { 1911 let this = self; 1912 unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value).ok() } 1913 } 1914 pub fn ReadByte(&self) -> ::windows::runtime::Result<u8> { 1915 let this = self; 1916 unsafe { 1917 let mut result__: u8 = ::std::mem::zeroed(); 1918 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__) 1919 } 1920 } 1921 pub fn ReadBytes(&self, value: &mut [<u8 as ::windows::runtime::Abi>::DefaultType]) -> ::windows::runtime::Result<()> { 1922 let this = self; 1923 unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.len() as u32, ::std::mem::transmute_copy(&value)).ok() } 1924 } 1925 pub fn ReadBuffer(&self, length: u32) -> ::windows::runtime::Result<IBuffer> { 1926 let this = self; 1927 unsafe { 1928 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 1929 (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), length, &mut result__).from_abi::<IBuffer>(result__) 1930 } 1931 } 1932 pub fn ReadBoolean(&self) -> ::windows::runtime::Result<bool> { 1933 let this = self; 1934 unsafe { 1935 let mut result__: bool = ::std::mem::zeroed(); 1936 (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 1937 } 1938 } 1939 pub fn ReadGuid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> { 1940 let this = self; 1941 unsafe { 1942 let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed(); 1943 (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__) 1944 } 1945 } 1946 pub fn ReadInt16(&self) -> ::windows::runtime::Result<i16> { 1947 let this = self; 1948 unsafe { 1949 let mut result__: i16 = ::std::mem::zeroed(); 1950 (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i16>(result__) 1951 } 1952 } 1953 pub fn ReadInt32(&self) -> ::windows::runtime::Result<i32> { 1954 let this = self; 1955 unsafe { 1956 let mut result__: i32 = ::std::mem::zeroed(); 1957 (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__) 1958 } 1959 } 1960 pub fn ReadInt64(&self) -> ::windows::runtime::Result<i64> { 1961 let this = self; 1962 unsafe { 1963 let mut result__: i64 = ::std::mem::zeroed(); 1964 (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i64>(result__) 1965 } 1966 } 1967 pub fn ReadUInt16(&self) -> ::windows::runtime::Result<u16> { 1968 let this = self; 1969 unsafe { 1970 let mut result__: u16 = ::std::mem::zeroed(); 1971 (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__) 1972 } 1973 } 1974 pub fn ReadUInt32(&self) -> ::windows::runtime::Result<u32> { 1975 let this = self; 1976 unsafe { 1977 let mut result__: u32 = ::std::mem::zeroed(); 1978 (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 1979 } 1980 } 1981 pub fn ReadUInt64(&self) -> ::windows::runtime::Result<u64> { 1982 let this = self; 1983 unsafe { 1984 let mut result__: u64 = ::std::mem::zeroed(); 1985 (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 1986 } 1987 } 1988 pub fn ReadSingle(&self) -> ::windows::runtime::Result<f32> { 1989 let this = self; 1990 unsafe { 1991 let mut result__: f32 = ::std::mem::zeroed(); 1992 (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f32>(result__) 1993 } 1994 } 1995 pub fn ReadDouble(&self) -> ::windows::runtime::Result<f64> { 1996 let this = self; 1997 unsafe { 1998 let mut result__: f64 = ::std::mem::zeroed(); 1999 (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__) 2000 } 2001 } 2002 pub fn ReadString(&self, codeunitcount: u32) -> ::windows::runtime::Result<::windows::runtime::HSTRING> { 2003 let this = self; 2004 unsafe { 2005 let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed(); 2006 (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), codeunitcount, &mut result__).from_abi::<::windows::runtime::HSTRING>(result__) 2007 } 2008 } 2009 #[cfg(feature = "Foundation")] 2010 pub fn ReadDateTime(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> { 2011 let this = self; 2012 unsafe { 2013 let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed(); 2014 (::windows::runtime::Interface::vtable(this).27)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__) 2015 } 2016 } 2017 #[cfg(feature = "Foundation")] 2018 pub fn ReadTimeSpan(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> { 2019 let this = self; 2020 unsafe { 2021 let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed(); 2022 (::windows::runtime::Interface::vtable(this).28)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__) 2023 } 2024 } 2025 #[cfg(feature = "Foundation")] 2026 pub fn LoadAsync(&self, count: u32) -> ::windows::runtime::Result<DataReaderLoadOperation> { 2027 let this = self; 2028 unsafe { 2029 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2030 (::windows::runtime::Interface::vtable(this).29)(::std::mem::transmute_copy(this), count, &mut result__).from_abi::<DataReaderLoadOperation>(result__) 2031 } 2032 } 2033 pub fn DetachBuffer(&self) -> ::windows::runtime::Result<IBuffer> { 2034 let this = self; 2035 unsafe { 2036 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2037 (::windows::runtime::Interface::vtable(this).30)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IBuffer>(result__) 2038 } 2039 } 2040 pub fn DetachStream(&self) -> ::windows::runtime::Result<IInputStream> { 2041 let this = self; 2042 unsafe { 2043 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2044 (::windows::runtime::Interface::vtable(this).31)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IInputStream>(result__) 2045 } 2046 } 2047 } 2048 unsafe impl ::windows::runtime::RuntimeType for IDataReader { 2049 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{e2b50029-b4c1-4314-a4b8-fb813a2f275e}"); 2050 } 2051 impl ::std::convert::From<IDataReader> for ::windows::runtime::IUnknown { 2052 fn from(value: IDataReader) -> Self { 2053 unsafe { ::std::mem::transmute(value) } 2054 } 2055 } 2056 impl ::std::convert::From<&IDataReader> for ::windows::runtime::IUnknown { 2057 fn from(value: &IDataReader) -> Self { 2058 ::std::convert::From::from(::std::clone::Clone::clone(value)) 2059 } 2060 } 2061 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDataReader { 2062 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2063 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 2064 } 2065 } 2066 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDataReader { 2067 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2068 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 2069 } 2070 } 2071 impl ::std::convert::From<IDataReader> for ::windows::runtime::IInspectable { 2072 fn from(value: IDataReader) -> Self { 2073 value.0 2074 } 2075 } 2076 impl ::std::convert::From<&IDataReader> for ::windows::runtime::IInspectable { 2077 fn from(value: &IDataReader) -> Self { 2078 value.0.clone() 2079 } 2080 } 2081 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IDataReader { 2082 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2083 ::windows::runtime::Param::Owned(self.0) 2084 } 2085 } 2086 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IDataReader { 2087 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2088 ::windows::runtime::Param::Borrowed(&self.0) 2089 } 2090 } 2091 #[repr(C)] 2092 #[doc(hidden)] 2093 pub struct IDataReader_abi( 2094 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2095 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2096 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2097 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2098 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2099 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2100 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT, 2101 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UnicodeEncoding) -> ::windows::runtime::HRESULT, 2102 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UnicodeEncoding) -> ::windows::runtime::HRESULT, 2103 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ByteOrder) -> ::windows::runtime::HRESULT, 2104 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ByteOrder) -> ::windows::runtime::HRESULT, 2105 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut InputStreamOptions) -> ::windows::runtime::HRESULT, 2106 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: InputStreamOptions) -> ::windows::runtime::HRESULT, 2107 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT, 2108 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value_array_size: u32, value: *mut u8) -> ::windows::runtime::HRESULT, 2109 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, length: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2110 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT, 2111 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2112 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i16) -> ::windows::runtime::HRESULT, 2113 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT, 2114 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i64) -> ::windows::runtime::HRESULT, 2115 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT, 2116 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT, 2117 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT, 2118 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f32) -> ::windows::runtime::HRESULT, 2119 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT, 2120 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codeunitcount: u32, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT, 2121 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT, 2122 #[cfg(not(feature = "Foundation"))] usize, 2123 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT, 2124 #[cfg(not(feature = "Foundation"))] usize, 2125 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2126 #[cfg(not(feature = "Foundation"))] usize, 2127 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2128 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2129 ); 2130 #[repr(transparent)] 2131 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2132 #[doc(hidden)] 2133 pub struct IDataReaderFactory(::windows::runtime::IInspectable); 2134 unsafe impl ::windows::runtime::Interface for IDataReaderFactory { 2135 type Vtable = IDataReaderFactory_abi; 2136 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3612506183, 22490, 19989, [145, 76, 6, 128, 102, 153, 160, 152]); 2137 } 2138 #[repr(C)] 2139 #[doc(hidden)] 2140 pub struct IDataReaderFactory_abi( 2141 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2142 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2143 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2144 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2145 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2146 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2147 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inputstream: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2148 ); 2149 #[repr(transparent)] 2150 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2151 #[doc(hidden)] 2152 pub struct IDataReaderStatics(::windows::runtime::IInspectable); 2153 unsafe impl ::windows::runtime::Interface for IDataReaderStatics { 2154 type Vtable = IDataReaderStatics_abi; 2155 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(301776840, 63802, 18203, [177, 33, 243, 121, 227, 73, 49, 60]); 2156 } 2157 #[repr(C)] 2158 #[doc(hidden)] 2159 pub struct IDataReaderStatics_abi( 2160 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2161 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2162 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2163 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2164 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2165 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2166 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2167 ); 2168 #[repr(transparent)] 2169 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2170 pub struct IDataWriter(::windows::runtime::IInspectable); 2171 unsafe impl ::windows::runtime::Interface for IDataWriter { 2172 type Vtable = IDataWriter_abi; 2173 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1689817701, 54081, 18722, [179, 138, 221, 74, 248, 128, 140, 78]); 2174 } 2175 impl IDataWriter { 2176 pub fn UnstoredBufferLength(&self) -> ::windows::runtime::Result<u32> { 2177 let this = self; 2178 unsafe { 2179 let mut result__: u32 = ::std::mem::zeroed(); 2180 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__) 2181 } 2182 } 2183 pub fn UnicodeEncoding(&self) -> ::windows::runtime::Result<UnicodeEncoding> { 2184 let this = self; 2185 unsafe { 2186 let mut result__: UnicodeEncoding = ::std::mem::zeroed(); 2187 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UnicodeEncoding>(result__) 2188 } 2189 } 2190 pub fn SetUnicodeEncoding(&self, value: UnicodeEncoding) -> ::windows::runtime::Result<()> { 2191 let this = self; 2192 unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() } 2193 } 2194 pub fn ByteOrder(&self) -> ::windows::runtime::Result<ByteOrder> { 2195 let this = self; 2196 unsafe { 2197 let mut result__: ByteOrder = ::std::mem::zeroed(); 2198 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ByteOrder>(result__) 2199 } 2200 } 2201 pub fn SetByteOrder(&self, value: ByteOrder) -> ::windows::runtime::Result<()> { 2202 let this = self; 2203 unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() } 2204 } 2205 pub fn WriteByte(&self, value: u8) -> ::windows::runtime::Result<()> { 2206 let this = self; 2207 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() } 2208 } 2209 pub fn WriteBytes(&self, value: &[<u8 as ::windows::runtime::Abi>::DefaultType]) -> ::windows::runtime::Result<()> { 2210 let this = self; 2211 unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value.len() as u32, ::std::mem::transmute(value.as_ptr())).ok() } 2212 } 2213 pub fn WriteBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<()> { 2214 let this = self; 2215 unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), buffer.into_param().abi()).ok() } 2216 } 2217 pub fn WriteBufferRange<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, start: u32, count: u32) -> ::windows::runtime::Result<()> { 2218 let this = self; 2219 unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), buffer.into_param().abi(), start, count).ok() } 2220 } 2221 pub fn WriteBoolean(&self, value: bool) -> ::windows::runtime::Result<()> { 2222 let this = self; 2223 unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() } 2224 } 2225 pub fn WriteGuid<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, value: Param0) -> ::windows::runtime::Result<()> { 2226 let this = self; 2227 unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() } 2228 } 2229 pub fn WriteInt16(&self, value: i16) -> ::windows::runtime::Result<()> { 2230 let this = self; 2231 unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value).ok() } 2232 } 2233 pub fn WriteInt32(&self, value: i32) -> ::windows::runtime::Result<()> { 2234 let this = self; 2235 unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value).ok() } 2236 } 2237 pub fn WriteInt64(&self, value: i64) -> ::windows::runtime::Result<()> { 2238 let this = self; 2239 unsafe { (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), value).ok() } 2240 } 2241 pub fn WriteUInt16(&self, value: u16) -> ::windows::runtime::Result<()> { 2242 let this = self; 2243 unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value).ok() } 2244 } 2245 pub fn WriteUInt32(&self, value: u32) -> ::windows::runtime::Result<()> { 2246 let this = self; 2247 unsafe { (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), value).ok() } 2248 } 2249 pub fn WriteUInt64(&self, value: u64) -> ::windows::runtime::Result<()> { 2250 let this = self; 2251 unsafe { (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), value).ok() } 2252 } 2253 pub fn WriteSingle(&self, value: f32) -> ::windows::runtime::Result<()> { 2254 let this = self; 2255 unsafe { (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), value).ok() } 2256 } 2257 pub fn WriteDouble(&self, value: f64) -> ::windows::runtime::Result<()> { 2258 let this = self; 2259 unsafe { (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), value).ok() } 2260 } 2261 #[cfg(feature = "Foundation")] 2262 pub fn WriteDateTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::runtime::Result<()> { 2263 let this = self; 2264 unsafe { (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() } 2265 } 2266 #[cfg(feature = "Foundation")] 2267 pub fn WriteTimeSpan<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, value: Param0) -> ::windows::runtime::Result<()> { 2268 let this = self; 2269 unsafe { (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() } 2270 } 2271 pub fn WriteString<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<u32> { 2272 let this = self; 2273 unsafe { 2274 let mut result__: u32 = ::std::mem::zeroed(); 2275 (::windows::runtime::Interface::vtable(this).27)(::std::mem::transmute_copy(this), value.into_param().abi(), &mut result__).from_abi::<u32>(result__) 2276 } 2277 } 2278 pub fn MeasureString<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<u32> { 2279 let this = self; 2280 unsafe { 2281 let mut result__: u32 = ::std::mem::zeroed(); 2282 (::windows::runtime::Interface::vtable(this).28)(::std::mem::transmute_copy(this), value.into_param().abi(), &mut result__).from_abi::<u32>(result__) 2283 } 2284 } 2285 #[cfg(feature = "Foundation")] 2286 pub fn StoreAsync(&self) -> ::windows::runtime::Result<DataWriterStoreOperation> { 2287 let this = self; 2288 unsafe { 2289 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2290 (::windows::runtime::Interface::vtable(this).29)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DataWriterStoreOperation>(result__) 2291 } 2292 } 2293 #[cfg(feature = "Foundation")] 2294 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 2295 let this = self; 2296 unsafe { 2297 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2298 (::windows::runtime::Interface::vtable(this).30)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 2299 } 2300 } 2301 pub fn DetachBuffer(&self) -> ::windows::runtime::Result<IBuffer> { 2302 let this = self; 2303 unsafe { 2304 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2305 (::windows::runtime::Interface::vtable(this).31)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IBuffer>(result__) 2306 } 2307 } 2308 pub fn DetachStream(&self) -> ::windows::runtime::Result<IOutputStream> { 2309 let this = self; 2310 unsafe { 2311 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2312 (::windows::runtime::Interface::vtable(this).32)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IOutputStream>(result__) 2313 } 2314 } 2315 } 2316 unsafe impl ::windows::runtime::RuntimeType for IDataWriter { 2317 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{64b89265-d341-4922-b38a-dd4af8808c4e}"); 2318 } 2319 impl ::std::convert::From<IDataWriter> for ::windows::runtime::IUnknown { 2320 fn from(value: IDataWriter) -> Self { 2321 unsafe { ::std::mem::transmute(value) } 2322 } 2323 } 2324 impl ::std::convert::From<&IDataWriter> for ::windows::runtime::IUnknown { 2325 fn from(value: &IDataWriter) -> Self { 2326 ::std::convert::From::from(::std::clone::Clone::clone(value)) 2327 } 2328 } 2329 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDataWriter { 2330 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2331 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 2332 } 2333 } 2334 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDataWriter { 2335 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2336 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 2337 } 2338 } 2339 impl ::std::convert::From<IDataWriter> for ::windows::runtime::IInspectable { 2340 fn from(value: IDataWriter) -> Self { 2341 value.0 2342 } 2343 } 2344 impl ::std::convert::From<&IDataWriter> for ::windows::runtime::IInspectable { 2345 fn from(value: &IDataWriter) -> Self { 2346 value.0.clone() 2347 } 2348 } 2349 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IDataWriter { 2350 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2351 ::windows::runtime::Param::Owned(self.0) 2352 } 2353 } 2354 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IDataWriter { 2355 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2356 ::windows::runtime::Param::Borrowed(&self.0) 2357 } 2358 } 2359 #[repr(C)] 2360 #[doc(hidden)] 2361 pub struct IDataWriter_abi( 2362 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2363 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2364 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2365 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2366 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2367 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2368 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT, 2369 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UnicodeEncoding) -> ::windows::runtime::HRESULT, 2370 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UnicodeEncoding) -> ::windows::runtime::HRESULT, 2371 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ByteOrder) -> ::windows::runtime::HRESULT, 2372 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ByteOrder) -> ::windows::runtime::HRESULT, 2373 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT, 2374 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value_array_size: u32, value: *const u8) -> ::windows::runtime::HRESULT, 2375 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2376 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr, start: u32, count: u32) -> ::windows::runtime::HRESULT, 2377 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT, 2378 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2379 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: i16) -> ::windows::runtime::HRESULT, 2380 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: i32) -> ::windows::runtime::HRESULT, 2381 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: i64) -> ::windows::runtime::HRESULT, 2382 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u16) -> ::windows::runtime::HRESULT, 2383 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT, 2384 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u64) -> ::windows::runtime::HRESULT, 2385 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f32) -> ::windows::runtime::HRESULT, 2386 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT, 2387 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT, 2388 #[cfg(not(feature = "Foundation"))] usize, 2389 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT, 2390 #[cfg(not(feature = "Foundation"))] usize, 2391 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut u32) -> ::windows::runtime::HRESULT, 2392 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut u32) -> ::windows::runtime::HRESULT, 2393 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2394 #[cfg(not(feature = "Foundation"))] usize, 2395 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2396 #[cfg(not(feature = "Foundation"))] usize, 2397 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2398 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2399 ); 2400 #[repr(transparent)] 2401 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2402 #[doc(hidden)] 2403 pub struct IDataWriterFactory(::windows::runtime::IInspectable); 2404 unsafe impl ::windows::runtime::Interface for IDataWriterFactory { 2405 type Vtable = IDataWriterFactory_abi; 2406 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(864839618, 35716, 19499, [156, 80, 123, 135, 103, 132, 122, 31]); 2407 } 2408 #[repr(C)] 2409 #[doc(hidden)] 2410 pub struct IDataWriterFactory_abi( 2411 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2412 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2413 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2414 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2415 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2416 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2417 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, outputstream: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2418 ); 2419 #[repr(transparent)] 2420 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2421 #[doc(hidden)] 2422 pub struct IFileRandomAccessStreamStatics(::windows::runtime::IInspectable); 2423 unsafe impl ::windows::runtime::Interface for IFileRandomAccessStreamStatics { 2424 type Vtable = IFileRandomAccessStreamStatics_abi; 2425 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1934950663, 15191, 19293, [131, 69, 85, 77, 47, 198, 33, 240]); 2426 } 2427 #[repr(C)] 2428 #[doc(hidden)] 2429 pub struct IFileRandomAccessStreamStatics_abi( 2430 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2431 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2432 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2433 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2434 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2435 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2436 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, accessmode: super::FileAccessMode, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2437 #[cfg(not(feature = "Foundation"))] usize, 2438 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, accessmode: super::FileAccessMode, sharingoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2439 #[cfg(not(feature = "Foundation"))] usize, 2440 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2441 #[cfg(not(feature = "Foundation"))] usize, 2442 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, openoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2443 #[cfg(not(feature = "Foundation"))] usize, 2444 #[cfg(all(feature = "Foundation", feature = "System"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, user: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, accessmode: super::FileAccessMode, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2445 #[cfg(not(all(feature = "Foundation", feature = "System")))] usize, 2446 #[cfg(all(feature = "Foundation", feature = "System"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, user: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, accessmode: super::FileAccessMode, sharingoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2447 #[cfg(not(all(feature = "Foundation", feature = "System")))] usize, 2448 #[cfg(all(feature = "Foundation", feature = "System"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, user: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2449 #[cfg(not(all(feature = "Foundation", feature = "System")))] usize, 2450 #[cfg(all(feature = "Foundation", feature = "System"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, user: ::windows::runtime::RawPtr, filepath: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, openoptions: super::StorageOpenOptions, opendisposition: FileOpenDisposition, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2451 #[cfg(not(all(feature = "Foundation", feature = "System")))] usize, 2452 ); 2453 #[repr(transparent)] 2454 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2455 pub struct IInputStream(::windows::runtime::IInspectable); 2456 unsafe impl ::windows::runtime::Interface for IInputStream { 2457 type Vtable = IInputStream_abi; 2458 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821410, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 2459 } 2460 impl IInputStream { 2461 #[cfg(feature = "Foundation")] 2462 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 2463 let this = self; 2464 unsafe { 2465 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2466 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 2467 } 2468 } 2469 #[cfg(feature = "Foundation")] 2470 pub fn Close(&self) -> ::windows::runtime::Result<()> { 2471 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 2472 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 2473 } 2474 } 2475 unsafe impl ::windows::runtime::RuntimeType for IInputStream { 2476 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{905a0fe2-bc53-11df-8c49-001e4fc686da}"); 2477 } 2478 impl ::std::convert::From<IInputStream> for ::windows::runtime::IUnknown { 2479 fn from(value: IInputStream) -> Self { 2480 unsafe { ::std::mem::transmute(value) } 2481 } 2482 } 2483 impl ::std::convert::From<&IInputStream> for ::windows::runtime::IUnknown { 2484 fn from(value: &IInputStream) -> Self { 2485 ::std::convert::From::from(::std::clone::Clone::clone(value)) 2486 } 2487 } 2488 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IInputStream { 2489 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2490 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 2491 } 2492 } 2493 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IInputStream { 2494 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2495 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 2496 } 2497 } 2498 impl ::std::convert::From<IInputStream> for ::windows::runtime::IInspectable { 2499 fn from(value: IInputStream) -> Self { 2500 value.0 2501 } 2502 } 2503 impl ::std::convert::From<&IInputStream> for ::windows::runtime::IInspectable { 2504 fn from(value: &IInputStream) -> Self { 2505 value.0.clone() 2506 } 2507 } 2508 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IInputStream { 2509 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2510 ::windows::runtime::Param::Owned(self.0) 2511 } 2512 } 2513 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IInputStream { 2514 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2515 ::windows::runtime::Param::Borrowed(&self.0) 2516 } 2517 } 2518 #[cfg(feature = "Foundation")] 2519 impl ::std::convert::TryFrom<IInputStream> for super::super::Foundation::IClosable { 2520 type Error = ::windows::runtime::Error; 2521 fn try_from(value: IInputStream) -> ::windows::runtime::Result<Self> { 2522 ::std::convert::TryFrom::try_from(&value) 2523 } 2524 } 2525 #[cfg(feature = "Foundation")] 2526 impl ::std::convert::TryFrom<&IInputStream> for super::super::Foundation::IClosable { 2527 type Error = ::windows::runtime::Error; 2528 fn try_from(value: &IInputStream) -> ::windows::runtime::Result<Self> { 2529 ::windows::runtime::Interface::cast(value) 2530 } 2531 } 2532 #[cfg(feature = "Foundation")] 2533 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IInputStream { 2534 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 2535 ::windows::runtime::IntoParam::into_param(&self) 2536 } 2537 } 2538 #[cfg(feature = "Foundation")] 2539 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IInputStream { 2540 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 2541 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 2542 } 2543 } 2544 #[repr(C)] 2545 #[doc(hidden)] 2546 pub struct IInputStream_abi( 2547 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2548 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2549 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2550 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2551 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2552 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2553 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr, count: u32, options: InputStreamOptions, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2554 #[cfg(not(feature = "Foundation"))] usize, 2555 ); 2556 #[repr(transparent)] 2557 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2558 pub struct IInputStreamReference(::windows::runtime::IInspectable); 2559 unsafe impl ::windows::runtime::Interface for IInputStreamReference { 2560 type Vtable = IInputStreamReference_abi; 2561 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1133681944, 24265, 19290, [145, 156, 66, 5, 176, 200, 4, 182]); 2562 } 2563 impl IInputStreamReference { 2564 #[cfg(feature = "Foundation")] 2565 pub fn OpenSequentialReadAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<IInputStream>> { 2566 let this = self; 2567 unsafe { 2568 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2569 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<IInputStream>>(result__) 2570 } 2571 } 2572 } 2573 unsafe impl ::windows::runtime::RuntimeType for IInputStreamReference { 2574 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{43929d18-5ec9-4b5a-919c-4205b0c804b6}"); 2575 } 2576 impl ::std::convert::From<IInputStreamReference> for ::windows::runtime::IUnknown { 2577 fn from(value: IInputStreamReference) -> Self { 2578 unsafe { ::std::mem::transmute(value) } 2579 } 2580 } 2581 impl ::std::convert::From<&IInputStreamReference> for ::windows::runtime::IUnknown { 2582 fn from(value: &IInputStreamReference) -> Self { 2583 ::std::convert::From::from(::std::clone::Clone::clone(value)) 2584 } 2585 } 2586 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IInputStreamReference { 2587 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2588 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 2589 } 2590 } 2591 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IInputStreamReference { 2592 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2593 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 2594 } 2595 } 2596 impl ::std::convert::From<IInputStreamReference> for ::windows::runtime::IInspectable { 2597 fn from(value: IInputStreamReference) -> Self { 2598 value.0 2599 } 2600 } 2601 impl ::std::convert::From<&IInputStreamReference> for ::windows::runtime::IInspectable { 2602 fn from(value: &IInputStreamReference) -> Self { 2603 value.0.clone() 2604 } 2605 } 2606 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IInputStreamReference { 2607 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2608 ::windows::runtime::Param::Owned(self.0) 2609 } 2610 } 2611 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IInputStreamReference { 2612 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2613 ::windows::runtime::Param::Borrowed(&self.0) 2614 } 2615 } 2616 #[repr(C)] 2617 #[doc(hidden)] 2618 pub struct IInputStreamReference_abi( 2619 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2620 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2621 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2622 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2623 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2624 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2625 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2626 #[cfg(not(feature = "Foundation"))] usize, 2627 ); 2628 #[repr(transparent)] 2629 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2630 pub struct IOutputStream(::windows::runtime::IInspectable); 2631 unsafe impl ::windows::runtime::Interface for IOutputStream { 2632 type Vtable = IOutputStream_abi; 2633 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821414, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 2634 } 2635 impl IOutputStream { 2636 #[cfg(feature = "Foundation")] 2637 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 2638 let this = self; 2639 unsafe { 2640 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2641 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 2642 } 2643 } 2644 #[cfg(feature = "Foundation")] 2645 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 2646 let this = self; 2647 unsafe { 2648 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2649 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 2650 } 2651 } 2652 #[cfg(feature = "Foundation")] 2653 pub fn Close(&self) -> ::windows::runtime::Result<()> { 2654 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 2655 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 2656 } 2657 } 2658 unsafe impl ::windows::runtime::RuntimeType for IOutputStream { 2659 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{905a0fe6-bc53-11df-8c49-001e4fc686da}"); 2660 } 2661 impl ::std::convert::From<IOutputStream> for ::windows::runtime::IUnknown { 2662 fn from(value: IOutputStream) -> Self { 2663 unsafe { ::std::mem::transmute(value) } 2664 } 2665 } 2666 impl ::std::convert::From<&IOutputStream> for ::windows::runtime::IUnknown { 2667 fn from(value: &IOutputStream) -> Self { 2668 ::std::convert::From::from(::std::clone::Clone::clone(value)) 2669 } 2670 } 2671 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IOutputStream { 2672 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2673 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 2674 } 2675 } 2676 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IOutputStream { 2677 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2678 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 2679 } 2680 } 2681 impl ::std::convert::From<IOutputStream> for ::windows::runtime::IInspectable { 2682 fn from(value: IOutputStream) -> Self { 2683 value.0 2684 } 2685 } 2686 impl ::std::convert::From<&IOutputStream> for ::windows::runtime::IInspectable { 2687 fn from(value: &IOutputStream) -> Self { 2688 value.0.clone() 2689 } 2690 } 2691 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IOutputStream { 2692 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2693 ::windows::runtime::Param::Owned(self.0) 2694 } 2695 } 2696 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IOutputStream { 2697 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2698 ::windows::runtime::Param::Borrowed(&self.0) 2699 } 2700 } 2701 #[cfg(feature = "Foundation")] 2702 impl ::std::convert::TryFrom<IOutputStream> for super::super::Foundation::IClosable { 2703 type Error = ::windows::runtime::Error; 2704 fn try_from(value: IOutputStream) -> ::windows::runtime::Result<Self> { 2705 ::std::convert::TryFrom::try_from(&value) 2706 } 2707 } 2708 #[cfg(feature = "Foundation")] 2709 impl ::std::convert::TryFrom<&IOutputStream> for super::super::Foundation::IClosable { 2710 type Error = ::windows::runtime::Error; 2711 fn try_from(value: &IOutputStream) -> ::windows::runtime::Result<Self> { 2712 ::windows::runtime::Interface::cast(value) 2713 } 2714 } 2715 #[cfg(feature = "Foundation")] 2716 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IOutputStream { 2717 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 2718 ::windows::runtime::IntoParam::into_param(&self) 2719 } 2720 } 2721 #[cfg(feature = "Foundation")] 2722 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IOutputStream { 2723 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 2724 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 2725 } 2726 } 2727 #[repr(C)] 2728 #[doc(hidden)] 2729 pub struct IOutputStream_abi( 2730 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2731 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2732 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2733 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2734 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2735 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2736 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2737 #[cfg(not(feature = "Foundation"))] usize, 2738 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2739 #[cfg(not(feature = "Foundation"))] usize, 2740 ); 2741 #[repr(transparent)] 2742 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2743 pub struct IPropertySetSerializer(::windows::runtime::IInspectable); 2744 unsafe impl ::windows::runtime::Interface for IPropertySetSerializer { 2745 type Vtable = IPropertySetSerializer_abi; 2746 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1854848796, 61245, 17270, [178, 14, 91, 230, 56, 174, 172, 119]); 2747 } 2748 impl IPropertySetSerializer { 2749 #[cfg(feature = "Foundation_Collections")] 2750 pub fn Serialize<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IPropertySet>>(&self, propertyset: Param0) -> ::windows::runtime::Result<IBuffer> { 2751 let this = self; 2752 unsafe { 2753 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2754 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertyset.into_param().abi(), &mut result__).from_abi::<IBuffer>(result__) 2755 } 2756 } 2757 #[cfg(feature = "Foundation_Collections")] 2758 pub fn Deserialize<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IPropertySet>, Param1: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, propertyset: Param0, buffer: Param1) -> ::windows::runtime::Result<()> { 2759 let this = self; 2760 unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertyset.into_param().abi(), buffer.into_param().abi()).ok() } 2761 } 2762 } 2763 unsafe impl ::windows::runtime::RuntimeType for IPropertySetSerializer { 2764 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{6e8ebf1c-ef3d-4376-b20e-5be638aeac77}"); 2765 } 2766 impl ::std::convert::From<IPropertySetSerializer> for ::windows::runtime::IUnknown { 2767 fn from(value: IPropertySetSerializer) -> Self { 2768 unsafe { ::std::mem::transmute(value) } 2769 } 2770 } 2771 impl ::std::convert::From<&IPropertySetSerializer> for ::windows::runtime::IUnknown { 2772 fn from(value: &IPropertySetSerializer) -> Self { 2773 ::std::convert::From::from(::std::clone::Clone::clone(value)) 2774 } 2775 } 2776 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IPropertySetSerializer { 2777 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2778 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 2779 } 2780 } 2781 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IPropertySetSerializer { 2782 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2783 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 2784 } 2785 } 2786 impl ::std::convert::From<IPropertySetSerializer> for ::windows::runtime::IInspectable { 2787 fn from(value: IPropertySetSerializer) -> Self { 2788 value.0 2789 } 2790 } 2791 impl ::std::convert::From<&IPropertySetSerializer> for ::windows::runtime::IInspectable { 2792 fn from(value: &IPropertySetSerializer) -> Self { 2793 value.0.clone() 2794 } 2795 } 2796 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IPropertySetSerializer { 2797 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2798 ::windows::runtime::Param::Owned(self.0) 2799 } 2800 } 2801 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IPropertySetSerializer { 2802 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2803 ::windows::runtime::Param::Borrowed(&self.0) 2804 } 2805 } 2806 #[repr(C)] 2807 #[doc(hidden)] 2808 pub struct IPropertySetSerializer_abi( 2809 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2810 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2811 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 2812 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 2813 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2814 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 2815 #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyset: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2816 #[cfg(not(feature = "Foundation_Collections"))] usize, 2817 #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyset: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 2818 #[cfg(not(feature = "Foundation_Collections"))] usize, 2819 ); 2820 #[repr(transparent)] 2821 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 2822 pub struct IRandomAccessStream(::windows::runtime::IInspectable); 2823 unsafe impl ::windows::runtime::Interface for IRandomAccessStream { 2824 type Vtable = IRandomAccessStream_abi; 2825 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821409, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 2826 } 2827 impl IRandomAccessStream { 2828 pub fn Size(&self) -> ::windows::runtime::Result<u64> { 2829 let this = self; 2830 unsafe { 2831 let mut result__: u64 = ::std::mem::zeroed(); 2832 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 2833 } 2834 } 2835 pub fn SetSize(&self, value: u64) -> ::windows::runtime::Result<()> { 2836 let this = self; 2837 unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() } 2838 } 2839 pub fn GetInputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IInputStream> { 2840 let this = self; 2841 unsafe { 2842 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2843 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IInputStream>(result__) 2844 } 2845 } 2846 pub fn GetOutputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IOutputStream> { 2847 let this = self; 2848 unsafe { 2849 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2850 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IOutputStream>(result__) 2851 } 2852 } 2853 pub fn Position(&self) -> ::windows::runtime::Result<u64> { 2854 let this = self; 2855 unsafe { 2856 let mut result__: u64 = ::std::mem::zeroed(); 2857 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 2858 } 2859 } 2860 pub fn Seek(&self, position: u64) -> ::windows::runtime::Result<()> { 2861 let this = self; 2862 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), position).ok() } 2863 } 2864 pub fn CloneStream(&self) -> ::windows::runtime::Result<IRandomAccessStream> { 2865 let this = self; 2866 unsafe { 2867 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2868 (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IRandomAccessStream>(result__) 2869 } 2870 } 2871 pub fn CanRead(&self) -> ::windows::runtime::Result<bool> { 2872 let this = self; 2873 unsafe { 2874 let mut result__: bool = ::std::mem::zeroed(); 2875 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 2876 } 2877 } 2878 pub fn CanWrite(&self) -> ::windows::runtime::Result<bool> { 2879 let this = self; 2880 unsafe { 2881 let mut result__: bool = ::std::mem::zeroed(); 2882 (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 2883 } 2884 } 2885 #[cfg(feature = "Foundation")] 2886 pub fn Close(&self) -> ::windows::runtime::Result<()> { 2887 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 2888 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 2889 } 2890 #[cfg(feature = "Foundation")] 2891 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 2892 let this = &::windows::runtime::Interface::cast::<IInputStream>(self)?; 2893 unsafe { 2894 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2895 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 2896 } 2897 } 2898 #[cfg(feature = "Foundation")] 2899 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 2900 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 2901 unsafe { 2902 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2903 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 2904 } 2905 } 2906 #[cfg(feature = "Foundation")] 2907 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 2908 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 2909 unsafe { 2910 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 2911 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 2912 } 2913 } 2914 } 2915 unsafe impl ::windows::runtime::RuntimeType for IRandomAccessStream { 2916 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{905a0fe1-bc53-11df-8c49-001e4fc686da}"); 2917 } 2918 impl ::std::convert::From<IRandomAccessStream> for ::windows::runtime::IUnknown { 2919 fn from(value: IRandomAccessStream) -> Self { 2920 unsafe { ::std::mem::transmute(value) } 2921 } 2922 } 2923 impl ::std::convert::From<&IRandomAccessStream> for ::windows::runtime::IUnknown { 2924 fn from(value: &IRandomAccessStream) -> Self { 2925 ::std::convert::From::from(::std::clone::Clone::clone(value)) 2926 } 2927 } 2928 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IRandomAccessStream { 2929 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2930 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 2931 } 2932 } 2933 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IRandomAccessStream { 2934 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 2935 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 2936 } 2937 } 2938 impl ::std::convert::From<IRandomAccessStream> for ::windows::runtime::IInspectable { 2939 fn from(value: IRandomAccessStream) -> Self { 2940 value.0 2941 } 2942 } 2943 impl ::std::convert::From<&IRandomAccessStream> for ::windows::runtime::IInspectable { 2944 fn from(value: &IRandomAccessStream) -> Self { 2945 value.0.clone() 2946 } 2947 } 2948 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IRandomAccessStream { 2949 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2950 ::windows::runtime::Param::Owned(self.0) 2951 } 2952 } 2953 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IRandomAccessStream { 2954 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 2955 ::windows::runtime::Param::Borrowed(&self.0) 2956 } 2957 } 2958 #[cfg(feature = "Foundation")] 2959 impl ::std::convert::TryFrom<IRandomAccessStream> for super::super::Foundation::IClosable { 2960 type Error = ::windows::runtime::Error; 2961 fn try_from(value: IRandomAccessStream) -> ::windows::runtime::Result<Self> { 2962 ::std::convert::TryFrom::try_from(&value) 2963 } 2964 } 2965 #[cfg(feature = "Foundation")] 2966 impl ::std::convert::TryFrom<&IRandomAccessStream> for super::super::Foundation::IClosable { 2967 type Error = ::windows::runtime::Error; 2968 fn try_from(value: &IRandomAccessStream) -> ::windows::runtime::Result<Self> { 2969 ::windows::runtime::Interface::cast(value) 2970 } 2971 } 2972 #[cfg(feature = "Foundation")] 2973 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IRandomAccessStream { 2974 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 2975 ::windows::runtime::IntoParam::into_param(&self) 2976 } 2977 } 2978 #[cfg(feature = "Foundation")] 2979 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IRandomAccessStream { 2980 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 2981 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 2982 } 2983 } 2984 impl ::std::convert::TryFrom<IRandomAccessStream> for IInputStream { 2985 type Error = ::windows::runtime::Error; 2986 fn try_from(value: IRandomAccessStream) -> ::windows::runtime::Result<Self> { 2987 ::std::convert::TryFrom::try_from(&value) 2988 } 2989 } 2990 impl ::std::convert::TryFrom<&IRandomAccessStream> for IInputStream { 2991 type Error = ::windows::runtime::Error; 2992 fn try_from(value: &IRandomAccessStream) -> ::windows::runtime::Result<Self> { 2993 ::windows::runtime::Interface::cast(value) 2994 } 2995 } 2996 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for IRandomAccessStream { 2997 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 2998 ::windows::runtime::IntoParam::into_param(&self) 2999 } 3000 } 3001 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for &IRandomAccessStream { 3002 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 3003 ::std::convert::TryInto::<IInputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3004 } 3005 } 3006 impl ::std::convert::TryFrom<IRandomAccessStream> for IOutputStream { 3007 type Error = ::windows::runtime::Error; 3008 fn try_from(value: IRandomAccessStream) -> ::windows::runtime::Result<Self> { 3009 ::std::convert::TryFrom::try_from(&value) 3010 } 3011 } 3012 impl ::std::convert::TryFrom<&IRandomAccessStream> for IOutputStream { 3013 type Error = ::windows::runtime::Error; 3014 fn try_from(value: &IRandomAccessStream) -> ::windows::runtime::Result<Self> { 3015 ::windows::runtime::Interface::cast(value) 3016 } 3017 } 3018 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for IRandomAccessStream { 3019 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3020 ::windows::runtime::IntoParam::into_param(&self) 3021 } 3022 } 3023 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for &IRandomAccessStream { 3024 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3025 ::std::convert::TryInto::<IOutputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3026 } 3027 } 3028 #[repr(C)] 3029 #[doc(hidden)] 3030 pub struct IRandomAccessStream_abi( 3031 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3032 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3033 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3034 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 3035 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3036 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 3037 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT, 3038 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u64) -> ::windows::runtime::HRESULT, 3039 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: u64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3040 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: u64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3041 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT, 3042 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: u64) -> ::windows::runtime::HRESULT, 3043 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3044 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT, 3045 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT, 3046 ); 3047 #[repr(transparent)] 3048 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3049 pub struct IRandomAccessStreamReference(::windows::runtime::IInspectable); 3050 unsafe impl ::windows::runtime::Interface for IRandomAccessStreamReference { 3051 type Vtable = IRandomAccessStreamReference_abi; 3052 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(871248180, 7638, 20026, [128, 103, 209, 193, 98, 232, 100, 43]); 3053 } 3054 impl IRandomAccessStreamReference { 3055 #[cfg(feature = "Foundation")] 3056 pub fn OpenReadAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<IRandomAccessStreamWithContentType>> { 3057 let this = self; 3058 unsafe { 3059 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3060 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<IRandomAccessStreamWithContentType>>(result__) 3061 } 3062 } 3063 } 3064 unsafe impl ::windows::runtime::RuntimeType for IRandomAccessStreamReference { 3065 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{33ee3134-1dd6-4e3a-8067-d1c162e8642b}"); 3066 } 3067 impl ::std::convert::From<IRandomAccessStreamReference> for ::windows::runtime::IUnknown { 3068 fn from(value: IRandomAccessStreamReference) -> Self { 3069 unsafe { ::std::mem::transmute(value) } 3070 } 3071 } 3072 impl ::std::convert::From<&IRandomAccessStreamReference> for ::windows::runtime::IUnknown { 3073 fn from(value: &IRandomAccessStreamReference) -> Self { 3074 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3075 } 3076 } 3077 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IRandomAccessStreamReference { 3078 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3079 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 3080 } 3081 } 3082 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IRandomAccessStreamReference { 3083 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3084 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 3085 } 3086 } 3087 impl ::std::convert::From<IRandomAccessStreamReference> for ::windows::runtime::IInspectable { 3088 fn from(value: IRandomAccessStreamReference) -> Self { 3089 value.0 3090 } 3091 } 3092 impl ::std::convert::From<&IRandomAccessStreamReference> for ::windows::runtime::IInspectable { 3093 fn from(value: &IRandomAccessStreamReference) -> Self { 3094 value.0.clone() 3095 } 3096 } 3097 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IRandomAccessStreamReference { 3098 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3099 ::windows::runtime::Param::Owned(self.0) 3100 } 3101 } 3102 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IRandomAccessStreamReference { 3103 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3104 ::windows::runtime::Param::Borrowed(&self.0) 3105 } 3106 } 3107 #[repr(C)] 3108 #[doc(hidden)] 3109 pub struct IRandomAccessStreamReference_abi( 3110 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3111 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3112 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3113 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 3114 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3115 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 3116 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3117 #[cfg(not(feature = "Foundation"))] usize, 3118 ); 3119 #[repr(transparent)] 3120 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3121 #[doc(hidden)] 3122 pub struct IRandomAccessStreamReferenceStatics(::windows::runtime::IInspectable); 3123 unsafe impl ::windows::runtime::Interface for IRandomAccessStreamReferenceStatics { 3124 type Vtable = IRandomAccessStreamReferenceStatics_abi; 3125 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2238908892, 16319, 20093, [152, 111, 239, 59, 26, 7, 169, 100]); 3126 } 3127 #[repr(C)] 3128 #[doc(hidden)] 3129 pub struct IRandomAccessStreamReferenceStatics_abi( 3130 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3131 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3132 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3133 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 3134 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3135 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 3136 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3137 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3138 #[cfg(not(feature = "Foundation"))] usize, 3139 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, stream: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3140 ); 3141 #[repr(transparent)] 3142 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3143 #[doc(hidden)] 3144 pub struct IRandomAccessStreamStatics(::windows::runtime::IInspectable); 3145 unsafe impl ::windows::runtime::Interface for IRandomAccessStreamStatics { 3146 type Vtable = IRandomAccessStreamStatics_abi; 3147 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1380773327, 28201, 19685, [149, 115, 107, 117, 61, 182, 108, 58]); 3148 } 3149 #[repr(C)] 3150 #[doc(hidden)] 3151 pub struct IRandomAccessStreamStatics_abi( 3152 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3153 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3154 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3155 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 3156 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3157 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 3158 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, source: ::windows::runtime::RawPtr, destination: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3159 #[cfg(not(feature = "Foundation"))] usize, 3160 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, source: ::windows::runtime::RawPtr, destination: ::windows::runtime::RawPtr, bytestocopy: u64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3161 #[cfg(not(feature = "Foundation"))] usize, 3162 #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, source: ::windows::runtime::RawPtr, destination: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3163 #[cfg(not(feature = "Foundation"))] usize, 3164 ); 3165 #[repr(transparent)] 3166 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3167 pub struct IRandomAccessStreamWithContentType(::windows::runtime::IInspectable); 3168 unsafe impl ::windows::runtime::Interface for IRandomAccessStreamWithContentType { 3169 type Vtable = IRandomAccessStreamWithContentType_abi; 3170 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3424995367, 19261, 17295, [146, 50, 16, 199, 107, 199, 224, 56]); 3171 } 3172 impl IRandomAccessStreamWithContentType { 3173 #[cfg(feature = "Foundation")] 3174 pub fn Close(&self) -> ::windows::runtime::Result<()> { 3175 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 3176 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 3177 } 3178 pub fn ContentType(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> { 3179 let this = &::windows::runtime::Interface::cast::<IContentTypeProvider>(self)?; 3180 unsafe { 3181 let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed(); 3182 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__) 3183 } 3184 } 3185 #[cfg(feature = "Foundation")] 3186 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 3187 let this = &::windows::runtime::Interface::cast::<IInputStream>(self)?; 3188 unsafe { 3189 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3190 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 3191 } 3192 } 3193 #[cfg(feature = "Foundation")] 3194 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 3195 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 3196 unsafe { 3197 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3198 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 3199 } 3200 } 3201 #[cfg(feature = "Foundation")] 3202 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 3203 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 3204 unsafe { 3205 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3206 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 3207 } 3208 } 3209 pub fn Size(&self) -> ::windows::runtime::Result<u64> { 3210 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3211 unsafe { 3212 let mut result__: u64 = ::std::mem::zeroed(); 3213 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 3214 } 3215 } 3216 pub fn SetSize(&self, value: u64) -> ::windows::runtime::Result<()> { 3217 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3218 unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() } 3219 } 3220 pub fn GetInputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IInputStream> { 3221 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3222 unsafe { 3223 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3224 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IInputStream>(result__) 3225 } 3226 } 3227 pub fn GetOutputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IOutputStream> { 3228 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3229 unsafe { 3230 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3231 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IOutputStream>(result__) 3232 } 3233 } 3234 pub fn Position(&self) -> ::windows::runtime::Result<u64> { 3235 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3236 unsafe { 3237 let mut result__: u64 = ::std::mem::zeroed(); 3238 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 3239 } 3240 } 3241 pub fn Seek(&self, position: u64) -> ::windows::runtime::Result<()> { 3242 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3243 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), position).ok() } 3244 } 3245 pub fn CloneStream(&self) -> ::windows::runtime::Result<IRandomAccessStream> { 3246 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3247 unsafe { 3248 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3249 (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IRandomAccessStream>(result__) 3250 } 3251 } 3252 pub fn CanRead(&self) -> ::windows::runtime::Result<bool> { 3253 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3254 unsafe { 3255 let mut result__: bool = ::std::mem::zeroed(); 3256 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 3257 } 3258 } 3259 pub fn CanWrite(&self) -> ::windows::runtime::Result<bool> { 3260 let this = &::windows::runtime::Interface::cast::<IRandomAccessStream>(self)?; 3261 unsafe { 3262 let mut result__: bool = ::std::mem::zeroed(); 3263 (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 3264 } 3265 } 3266 } 3267 unsafe impl ::windows::runtime::RuntimeType for IRandomAccessStreamWithContentType { 3268 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{cc254827-4b3d-438f-9232-10c76bc7e038}"); 3269 } 3270 impl ::std::convert::From<IRandomAccessStreamWithContentType> for ::windows::runtime::IUnknown { 3271 fn from(value: IRandomAccessStreamWithContentType) -> Self { 3272 unsafe { ::std::mem::transmute(value) } 3273 } 3274 } 3275 impl ::std::convert::From<&IRandomAccessStreamWithContentType> for ::windows::runtime::IUnknown { 3276 fn from(value: &IRandomAccessStreamWithContentType) -> Self { 3277 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3278 } 3279 } 3280 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IRandomAccessStreamWithContentType { 3281 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3282 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 3283 } 3284 } 3285 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IRandomAccessStreamWithContentType { 3286 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3287 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 3288 } 3289 } 3290 impl ::std::convert::From<IRandomAccessStreamWithContentType> for ::windows::runtime::IInspectable { 3291 fn from(value: IRandomAccessStreamWithContentType) -> Self { 3292 value.0 3293 } 3294 } 3295 impl ::std::convert::From<&IRandomAccessStreamWithContentType> for ::windows::runtime::IInspectable { 3296 fn from(value: &IRandomAccessStreamWithContentType) -> Self { 3297 value.0.clone() 3298 } 3299 } 3300 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IRandomAccessStreamWithContentType { 3301 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3302 ::windows::runtime::Param::Owned(self.0) 3303 } 3304 } 3305 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IRandomAccessStreamWithContentType { 3306 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3307 ::windows::runtime::Param::Borrowed(&self.0) 3308 } 3309 } 3310 #[cfg(feature = "Foundation")] 3311 impl ::std::convert::TryFrom<IRandomAccessStreamWithContentType> for super::super::Foundation::IClosable { 3312 type Error = ::windows::runtime::Error; 3313 fn try_from(value: IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3314 ::std::convert::TryFrom::try_from(&value) 3315 } 3316 } 3317 #[cfg(feature = "Foundation")] 3318 impl ::std::convert::TryFrom<&IRandomAccessStreamWithContentType> for super::super::Foundation::IClosable { 3319 type Error = ::windows::runtime::Error; 3320 fn try_from(value: &IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3321 ::windows::runtime::Interface::cast(value) 3322 } 3323 } 3324 #[cfg(feature = "Foundation")] 3325 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for IRandomAccessStreamWithContentType { 3326 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3327 ::windows::runtime::IntoParam::into_param(&self) 3328 } 3329 } 3330 #[cfg(feature = "Foundation")] 3331 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &IRandomAccessStreamWithContentType { 3332 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3333 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3334 } 3335 } 3336 impl ::std::convert::TryFrom<IRandomAccessStreamWithContentType> for IContentTypeProvider { 3337 type Error = ::windows::runtime::Error; 3338 fn try_from(value: IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3339 ::std::convert::TryFrom::try_from(&value) 3340 } 3341 } 3342 impl ::std::convert::TryFrom<&IRandomAccessStreamWithContentType> for IContentTypeProvider { 3343 type Error = ::windows::runtime::Error; 3344 fn try_from(value: &IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3345 ::windows::runtime::Interface::cast(value) 3346 } 3347 } 3348 impl<'a> ::windows::runtime::IntoParam<'a, IContentTypeProvider> for IRandomAccessStreamWithContentType { 3349 fn into_param(self) -> ::windows::runtime::Param<'a, IContentTypeProvider> { 3350 ::windows::runtime::IntoParam::into_param(&self) 3351 } 3352 } 3353 impl<'a> ::windows::runtime::IntoParam<'a, IContentTypeProvider> for &IRandomAccessStreamWithContentType { 3354 fn into_param(self) -> ::windows::runtime::Param<'a, IContentTypeProvider> { 3355 ::std::convert::TryInto::<IContentTypeProvider>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3356 } 3357 } 3358 impl ::std::convert::TryFrom<IRandomAccessStreamWithContentType> for IInputStream { 3359 type Error = ::windows::runtime::Error; 3360 fn try_from(value: IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3361 ::std::convert::TryFrom::try_from(&value) 3362 } 3363 } 3364 impl ::std::convert::TryFrom<&IRandomAccessStreamWithContentType> for IInputStream { 3365 type Error = ::windows::runtime::Error; 3366 fn try_from(value: &IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3367 ::windows::runtime::Interface::cast(value) 3368 } 3369 } 3370 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for IRandomAccessStreamWithContentType { 3371 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 3372 ::windows::runtime::IntoParam::into_param(&self) 3373 } 3374 } 3375 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for &IRandomAccessStreamWithContentType { 3376 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 3377 ::std::convert::TryInto::<IInputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3378 } 3379 } 3380 impl ::std::convert::TryFrom<IRandomAccessStreamWithContentType> for IOutputStream { 3381 type Error = ::windows::runtime::Error; 3382 fn try_from(value: IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3383 ::std::convert::TryFrom::try_from(&value) 3384 } 3385 } 3386 impl ::std::convert::TryFrom<&IRandomAccessStreamWithContentType> for IOutputStream { 3387 type Error = ::windows::runtime::Error; 3388 fn try_from(value: &IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3389 ::windows::runtime::Interface::cast(value) 3390 } 3391 } 3392 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for IRandomAccessStreamWithContentType { 3393 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3394 ::windows::runtime::IntoParam::into_param(&self) 3395 } 3396 } 3397 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for &IRandomAccessStreamWithContentType { 3398 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3399 ::std::convert::TryInto::<IOutputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3400 } 3401 } 3402 impl ::std::convert::TryFrom<IRandomAccessStreamWithContentType> for IRandomAccessStream { 3403 type Error = ::windows::runtime::Error; 3404 fn try_from(value: IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3405 ::std::convert::TryFrom::try_from(&value) 3406 } 3407 } 3408 impl ::std::convert::TryFrom<&IRandomAccessStreamWithContentType> for IRandomAccessStream { 3409 type Error = ::windows::runtime::Error; 3410 fn try_from(value: &IRandomAccessStreamWithContentType) -> ::windows::runtime::Result<Self> { 3411 ::windows::runtime::Interface::cast(value) 3412 } 3413 } 3414 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for IRandomAccessStreamWithContentType { 3415 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 3416 ::windows::runtime::IntoParam::into_param(&self) 3417 } 3418 } 3419 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for &IRandomAccessStreamWithContentType { 3420 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 3421 ::std::convert::TryInto::<IRandomAccessStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3422 } 3423 } 3424 #[repr(C)] 3425 #[doc(hidden)] 3426 pub struct IRandomAccessStreamWithContentType_abi( 3427 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3428 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3429 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32, 3430 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT, 3431 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT, 3432 pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT, 3433 ); 3434 #[repr(transparent)] 3435 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3436 pub struct InMemoryRandomAccessStream(::windows::runtime::IInspectable); 3437 impl InMemoryRandomAccessStream { 3438 pub fn new() -> ::windows::runtime::Result<Self> { 3439 Self::IActivationFactory(|f| f.activate_instance::<Self>()) 3440 } 3441 fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 3442 static mut SHARED: ::windows::runtime::FactoryCache<InMemoryRandomAccessStream, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new(); 3443 unsafe { SHARED.call(callback) } 3444 } 3445 pub fn Size(&self) -> ::windows::runtime::Result<u64> { 3446 let this = self; 3447 unsafe { 3448 let mut result__: u64 = ::std::mem::zeroed(); 3449 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 3450 } 3451 } 3452 pub fn SetSize(&self, value: u64) -> ::windows::runtime::Result<()> { 3453 let this = self; 3454 unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() } 3455 } 3456 pub fn GetInputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IInputStream> { 3457 let this = self; 3458 unsafe { 3459 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3460 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IInputStream>(result__) 3461 } 3462 } 3463 pub fn GetOutputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IOutputStream> { 3464 let this = self; 3465 unsafe { 3466 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3467 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IOutputStream>(result__) 3468 } 3469 } 3470 pub fn Position(&self) -> ::windows::runtime::Result<u64> { 3471 let this = self; 3472 unsafe { 3473 let mut result__: u64 = ::std::mem::zeroed(); 3474 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 3475 } 3476 } 3477 pub fn Seek(&self, position: u64) -> ::windows::runtime::Result<()> { 3478 let this = self; 3479 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), position).ok() } 3480 } 3481 pub fn CloneStream(&self) -> ::windows::runtime::Result<IRandomAccessStream> { 3482 let this = self; 3483 unsafe { 3484 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3485 (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IRandomAccessStream>(result__) 3486 } 3487 } 3488 pub fn CanRead(&self) -> ::windows::runtime::Result<bool> { 3489 let this = self; 3490 unsafe { 3491 let mut result__: bool = ::std::mem::zeroed(); 3492 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 3493 } 3494 } 3495 pub fn CanWrite(&self) -> ::windows::runtime::Result<bool> { 3496 let this = self; 3497 unsafe { 3498 let mut result__: bool = ::std::mem::zeroed(); 3499 (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 3500 } 3501 } 3502 #[cfg(feature = "Foundation")] 3503 pub fn Close(&self) -> ::windows::runtime::Result<()> { 3504 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 3505 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 3506 } 3507 #[cfg(feature = "Foundation")] 3508 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 3509 let this = &::windows::runtime::Interface::cast::<IInputStream>(self)?; 3510 unsafe { 3511 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3512 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 3513 } 3514 } 3515 #[cfg(feature = "Foundation")] 3516 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 3517 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 3518 unsafe { 3519 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3520 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 3521 } 3522 } 3523 #[cfg(feature = "Foundation")] 3524 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 3525 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 3526 unsafe { 3527 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3528 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 3529 } 3530 } 3531 } 3532 unsafe impl ::windows::runtime::RuntimeType for InMemoryRandomAccessStream { 3533 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.InMemoryRandomAccessStream;{905a0fe1-bc53-11df-8c49-001e4fc686da})"); 3534 } 3535 unsafe impl ::windows::runtime::Interface for InMemoryRandomAccessStream { 3536 type Vtable = IRandomAccessStream_abi; 3537 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821409, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 3538 } 3539 impl ::windows::runtime::RuntimeName for InMemoryRandomAccessStream { 3540 const NAME: &'static str = "Windows.Storage.Streams.InMemoryRandomAccessStream"; 3541 } 3542 impl ::std::convert::From<InMemoryRandomAccessStream> for ::windows::runtime::IUnknown { 3543 fn from(value: InMemoryRandomAccessStream) -> Self { 3544 unsafe { ::std::mem::transmute(value) } 3545 } 3546 } 3547 impl ::std::convert::From<&InMemoryRandomAccessStream> for ::windows::runtime::IUnknown { 3548 fn from(value: &InMemoryRandomAccessStream) -> Self { 3549 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3550 } 3551 } 3552 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for InMemoryRandomAccessStream { 3553 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3554 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 3555 } 3556 } 3557 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &InMemoryRandomAccessStream { 3558 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3559 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 3560 } 3561 } 3562 impl ::std::convert::From<InMemoryRandomAccessStream> for ::windows::runtime::IInspectable { 3563 fn from(value: InMemoryRandomAccessStream) -> Self { 3564 value.0 3565 } 3566 } 3567 impl ::std::convert::From<&InMemoryRandomAccessStream> for ::windows::runtime::IInspectable { 3568 fn from(value: &InMemoryRandomAccessStream) -> Self { 3569 value.0.clone() 3570 } 3571 } 3572 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for InMemoryRandomAccessStream { 3573 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3574 ::windows::runtime::Param::Owned(self.0) 3575 } 3576 } 3577 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a InMemoryRandomAccessStream { 3578 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3579 ::windows::runtime::Param::Borrowed(&self.0) 3580 } 3581 } 3582 impl ::std::convert::From<InMemoryRandomAccessStream> for IRandomAccessStream { 3583 fn from(value: InMemoryRandomAccessStream) -> Self { 3584 unsafe { ::std::mem::transmute(value) } 3585 } 3586 } 3587 impl ::std::convert::From<&InMemoryRandomAccessStream> for IRandomAccessStream { 3588 fn from(value: &InMemoryRandomAccessStream) -> Self { 3589 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3590 } 3591 } 3592 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for InMemoryRandomAccessStream { 3593 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 3594 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStream>::into(self)) 3595 } 3596 } 3597 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for &InMemoryRandomAccessStream { 3598 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 3599 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStream>::into(::std::clone::Clone::clone(self))) 3600 } 3601 } 3602 #[cfg(feature = "Foundation")] 3603 impl ::std::convert::TryFrom<InMemoryRandomAccessStream> for super::super::Foundation::IClosable { 3604 type Error = ::windows::runtime::Error; 3605 fn try_from(value: InMemoryRandomAccessStream) -> ::windows::runtime::Result<Self> { 3606 ::std::convert::TryFrom::try_from(&value) 3607 } 3608 } 3609 #[cfg(feature = "Foundation")] 3610 impl ::std::convert::TryFrom<&InMemoryRandomAccessStream> for super::super::Foundation::IClosable { 3611 type Error = ::windows::runtime::Error; 3612 fn try_from(value: &InMemoryRandomAccessStream) -> ::windows::runtime::Result<Self> { 3613 ::windows::runtime::Interface::cast(value) 3614 } 3615 } 3616 #[cfg(feature = "Foundation")] 3617 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for InMemoryRandomAccessStream { 3618 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3619 ::windows::runtime::IntoParam::into_param(&self) 3620 } 3621 } 3622 #[cfg(feature = "Foundation")] 3623 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &InMemoryRandomAccessStream { 3624 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3625 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3626 } 3627 } 3628 impl ::std::convert::TryFrom<InMemoryRandomAccessStream> for IInputStream { 3629 type Error = ::windows::runtime::Error; 3630 fn try_from(value: InMemoryRandomAccessStream) -> ::windows::runtime::Result<Self> { 3631 ::std::convert::TryFrom::try_from(&value) 3632 } 3633 } 3634 impl ::std::convert::TryFrom<&InMemoryRandomAccessStream> for IInputStream { 3635 type Error = ::windows::runtime::Error; 3636 fn try_from(value: &InMemoryRandomAccessStream) -> ::windows::runtime::Result<Self> { 3637 ::windows::runtime::Interface::cast(value) 3638 } 3639 } 3640 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for InMemoryRandomAccessStream { 3641 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 3642 ::windows::runtime::IntoParam::into_param(&self) 3643 } 3644 } 3645 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for &InMemoryRandomAccessStream { 3646 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 3647 ::std::convert::TryInto::<IInputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3648 } 3649 } 3650 impl ::std::convert::TryFrom<InMemoryRandomAccessStream> for IOutputStream { 3651 type Error = ::windows::runtime::Error; 3652 fn try_from(value: InMemoryRandomAccessStream) -> ::windows::runtime::Result<Self> { 3653 ::std::convert::TryFrom::try_from(&value) 3654 } 3655 } 3656 impl ::std::convert::TryFrom<&InMemoryRandomAccessStream> for IOutputStream { 3657 type Error = ::windows::runtime::Error; 3658 fn try_from(value: &InMemoryRandomAccessStream) -> ::windows::runtime::Result<Self> { 3659 ::windows::runtime::Interface::cast(value) 3660 } 3661 } 3662 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for InMemoryRandomAccessStream { 3663 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3664 ::windows::runtime::IntoParam::into_param(&self) 3665 } 3666 } 3667 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for &InMemoryRandomAccessStream { 3668 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3669 ::std::convert::TryInto::<IOutputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3670 } 3671 } 3672 unsafe impl ::std::marker::Send for InMemoryRandomAccessStream {} 3673 unsafe impl ::std::marker::Sync for InMemoryRandomAccessStream {} 3674 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)] 3675 #[repr(transparent)] 3676 pub struct InputStreamOptions(pub u32); 3677 impl InputStreamOptions { 3678 pub const None: InputStreamOptions = InputStreamOptions(0u32); 3679 pub const Partial: InputStreamOptions = InputStreamOptions(1u32); 3680 pub const ReadAhead: InputStreamOptions = InputStreamOptions(2u32); 3681 } 3682 impl ::std::convert::From<u32> for InputStreamOptions { 3683 fn from(value: u32) -> Self { 3684 Self(value) 3685 } 3686 } 3687 unsafe impl ::windows::runtime::Abi for InputStreamOptions { 3688 type Abi = Self; 3689 type DefaultType = Self; 3690 } 3691 unsafe impl ::windows::runtime::RuntimeType for InputStreamOptions { 3692 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.Streams.InputStreamOptions;u4)"); 3693 } 3694 impl ::std::ops::BitOr for InputStreamOptions { 3695 type Output = Self; 3696 fn bitor(self, rhs: Self) -> Self { 3697 Self(self.0 | rhs.0) 3698 } 3699 } 3700 impl ::std::ops::BitAnd for InputStreamOptions { 3701 type Output = Self; 3702 fn bitand(self, rhs: Self) -> Self { 3703 Self(self.0 & rhs.0) 3704 } 3705 } 3706 impl ::std::ops::BitOrAssign for InputStreamOptions { 3707 fn bitor_assign(&mut self, rhs: Self) { 3708 self.0.bitor_assign(rhs.0) 3709 } 3710 } 3711 impl ::std::ops::BitAndAssign for InputStreamOptions { 3712 fn bitand_assign(&mut self, rhs: Self) { 3713 self.0.bitand_assign(rhs.0) 3714 } 3715 } 3716 impl ::std::ops::Not for InputStreamOptions { 3717 type Output = Self; 3718 fn not(self) -> Self { 3719 Self(self.0.not()) 3720 } 3721 } 3722 #[repr(transparent)] 3723 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3724 pub struct InputStreamOverStream(::windows::runtime::IInspectable); 3725 impl InputStreamOverStream { 3726 #[cfg(feature = "Foundation")] 3727 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 3728 let this = self; 3729 unsafe { 3730 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3731 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 3732 } 3733 } 3734 #[cfg(feature = "Foundation")] 3735 pub fn Close(&self) -> ::windows::runtime::Result<()> { 3736 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 3737 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 3738 } 3739 } 3740 unsafe impl ::windows::runtime::RuntimeType for InputStreamOverStream { 3741 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.InputStreamOverStream;{905a0fe2-bc53-11df-8c49-001e4fc686da})"); 3742 } 3743 unsafe impl ::windows::runtime::Interface for InputStreamOverStream { 3744 type Vtable = IInputStream_abi; 3745 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821410, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 3746 } 3747 impl ::windows::runtime::RuntimeName for InputStreamOverStream { 3748 const NAME: &'static str = "Windows.Storage.Streams.InputStreamOverStream"; 3749 } 3750 impl ::std::convert::From<InputStreamOverStream> for ::windows::runtime::IUnknown { 3751 fn from(value: InputStreamOverStream) -> Self { 3752 unsafe { ::std::mem::transmute(value) } 3753 } 3754 } 3755 impl ::std::convert::From<&InputStreamOverStream> for ::windows::runtime::IUnknown { 3756 fn from(value: &InputStreamOverStream) -> Self { 3757 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3758 } 3759 } 3760 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for InputStreamOverStream { 3761 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3762 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 3763 } 3764 } 3765 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &InputStreamOverStream { 3766 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3767 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 3768 } 3769 } 3770 impl ::std::convert::From<InputStreamOverStream> for ::windows::runtime::IInspectable { 3771 fn from(value: InputStreamOverStream) -> Self { 3772 value.0 3773 } 3774 } 3775 impl ::std::convert::From<&InputStreamOverStream> for ::windows::runtime::IInspectable { 3776 fn from(value: &InputStreamOverStream) -> Self { 3777 value.0.clone() 3778 } 3779 } 3780 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for InputStreamOverStream { 3781 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3782 ::windows::runtime::Param::Owned(self.0) 3783 } 3784 } 3785 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a InputStreamOverStream { 3786 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3787 ::windows::runtime::Param::Borrowed(&self.0) 3788 } 3789 } 3790 impl ::std::convert::From<InputStreamOverStream> for IInputStream { 3791 fn from(value: InputStreamOverStream) -> Self { 3792 unsafe { ::std::mem::transmute(value) } 3793 } 3794 } 3795 impl ::std::convert::From<&InputStreamOverStream> for IInputStream { 3796 fn from(value: &InputStreamOverStream) -> Self { 3797 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3798 } 3799 } 3800 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for InputStreamOverStream { 3801 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 3802 ::windows::runtime::Param::Owned(::std::convert::Into::<IInputStream>::into(self)) 3803 } 3804 } 3805 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for &InputStreamOverStream { 3806 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 3807 ::windows::runtime::Param::Owned(::std::convert::Into::<IInputStream>::into(::std::clone::Clone::clone(self))) 3808 } 3809 } 3810 #[cfg(feature = "Foundation")] 3811 impl ::std::convert::TryFrom<InputStreamOverStream> for super::super::Foundation::IClosable { 3812 type Error = ::windows::runtime::Error; 3813 fn try_from(value: InputStreamOverStream) -> ::windows::runtime::Result<Self> { 3814 ::std::convert::TryFrom::try_from(&value) 3815 } 3816 } 3817 #[cfg(feature = "Foundation")] 3818 impl ::std::convert::TryFrom<&InputStreamOverStream> for super::super::Foundation::IClosable { 3819 type Error = ::windows::runtime::Error; 3820 fn try_from(value: &InputStreamOverStream) -> ::windows::runtime::Result<Self> { 3821 ::windows::runtime::Interface::cast(value) 3822 } 3823 } 3824 #[cfg(feature = "Foundation")] 3825 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for InputStreamOverStream { 3826 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3827 ::windows::runtime::IntoParam::into_param(&self) 3828 } 3829 } 3830 #[cfg(feature = "Foundation")] 3831 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &InputStreamOverStream { 3832 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3833 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3834 } 3835 } 3836 unsafe impl ::std::marker::Send for InputStreamOverStream {} 3837 unsafe impl ::std::marker::Sync for InputStreamOverStream {} 3838 #[repr(transparent)] 3839 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3840 pub struct OutputStreamOverStream(::windows::runtime::IInspectable); 3841 impl OutputStreamOverStream { 3842 #[cfg(feature = "Foundation")] 3843 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 3844 let this = self; 3845 unsafe { 3846 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3847 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 3848 } 3849 } 3850 #[cfg(feature = "Foundation")] 3851 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 3852 let this = self; 3853 unsafe { 3854 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3855 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 3856 } 3857 } 3858 #[cfg(feature = "Foundation")] 3859 pub fn Close(&self) -> ::windows::runtime::Result<()> { 3860 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 3861 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 3862 } 3863 } 3864 unsafe impl ::windows::runtime::RuntimeType for OutputStreamOverStream { 3865 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.OutputStreamOverStream;{905a0fe6-bc53-11df-8c49-001e4fc686da})"); 3866 } 3867 unsafe impl ::windows::runtime::Interface for OutputStreamOverStream { 3868 type Vtable = IOutputStream_abi; 3869 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821414, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 3870 } 3871 impl ::windows::runtime::RuntimeName for OutputStreamOverStream { 3872 const NAME: &'static str = "Windows.Storage.Streams.OutputStreamOverStream"; 3873 } 3874 impl ::std::convert::From<OutputStreamOverStream> for ::windows::runtime::IUnknown { 3875 fn from(value: OutputStreamOverStream) -> Self { 3876 unsafe { ::std::mem::transmute(value) } 3877 } 3878 } 3879 impl ::std::convert::From<&OutputStreamOverStream> for ::windows::runtime::IUnknown { 3880 fn from(value: &OutputStreamOverStream) -> Self { 3881 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3882 } 3883 } 3884 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for OutputStreamOverStream { 3885 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3886 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 3887 } 3888 } 3889 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &OutputStreamOverStream { 3890 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 3891 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 3892 } 3893 } 3894 impl ::std::convert::From<OutputStreamOverStream> for ::windows::runtime::IInspectable { 3895 fn from(value: OutputStreamOverStream) -> Self { 3896 value.0 3897 } 3898 } 3899 impl ::std::convert::From<&OutputStreamOverStream> for ::windows::runtime::IInspectable { 3900 fn from(value: &OutputStreamOverStream) -> Self { 3901 value.0.clone() 3902 } 3903 } 3904 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for OutputStreamOverStream { 3905 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3906 ::windows::runtime::Param::Owned(self.0) 3907 } 3908 } 3909 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a OutputStreamOverStream { 3910 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 3911 ::windows::runtime::Param::Borrowed(&self.0) 3912 } 3913 } 3914 impl ::std::convert::From<OutputStreamOverStream> for IOutputStream { 3915 fn from(value: OutputStreamOverStream) -> Self { 3916 unsafe { ::std::mem::transmute(value) } 3917 } 3918 } 3919 impl ::std::convert::From<&OutputStreamOverStream> for IOutputStream { 3920 fn from(value: &OutputStreamOverStream) -> Self { 3921 ::std::convert::From::from(::std::clone::Clone::clone(value)) 3922 } 3923 } 3924 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for OutputStreamOverStream { 3925 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3926 ::windows::runtime::Param::Owned(::std::convert::Into::<IOutputStream>::into(self)) 3927 } 3928 } 3929 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for &OutputStreamOverStream { 3930 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 3931 ::windows::runtime::Param::Owned(::std::convert::Into::<IOutputStream>::into(::std::clone::Clone::clone(self))) 3932 } 3933 } 3934 #[cfg(feature = "Foundation")] 3935 impl ::std::convert::TryFrom<OutputStreamOverStream> for super::super::Foundation::IClosable { 3936 type Error = ::windows::runtime::Error; 3937 fn try_from(value: OutputStreamOverStream) -> ::windows::runtime::Result<Self> { 3938 ::std::convert::TryFrom::try_from(&value) 3939 } 3940 } 3941 #[cfg(feature = "Foundation")] 3942 impl ::std::convert::TryFrom<&OutputStreamOverStream> for super::super::Foundation::IClosable { 3943 type Error = ::windows::runtime::Error; 3944 fn try_from(value: &OutputStreamOverStream) -> ::windows::runtime::Result<Self> { 3945 ::windows::runtime::Interface::cast(value) 3946 } 3947 } 3948 #[cfg(feature = "Foundation")] 3949 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for OutputStreamOverStream { 3950 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3951 ::windows::runtime::IntoParam::into_param(&self) 3952 } 3953 } 3954 #[cfg(feature = "Foundation")] 3955 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &OutputStreamOverStream { 3956 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 3957 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 3958 } 3959 } 3960 unsafe impl ::std::marker::Send for OutputStreamOverStream {} 3961 unsafe impl ::std::marker::Sync for OutputStreamOverStream {} 3962 pub struct RandomAccessStream {} 3963 impl RandomAccessStream { 3964 #[cfg(feature = "Foundation")] 3965 pub fn CopyAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IInputStream>, Param1: ::windows::runtime::IntoParam<'a, IOutputStream>>(source: Param0, destination: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u64, u64>> { 3966 Self::IRandomAccessStreamStatics(|this| unsafe { 3967 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3968 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u64, u64>>(result__) 3969 }) 3970 } 3971 #[cfg(feature = "Foundation")] 3972 pub fn CopySizeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IInputStream>, Param1: ::windows::runtime::IntoParam<'a, IOutputStream>>(source: Param0, destination: Param1, bytestocopy: u64) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u64, u64>> { 3973 Self::IRandomAccessStreamStatics(|this| unsafe { 3974 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3975 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi(), bytestocopy, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u64, u64>>(result__) 3976 }) 3977 } 3978 #[cfg(feature = "Foundation")] 3979 pub fn CopyAndCloseAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IInputStream>, Param1: ::windows::runtime::IntoParam<'a, IOutputStream>>(source: Param0, destination: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u64, u64>> { 3980 Self::IRandomAccessStreamStatics(|this| unsafe { 3981 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 3982 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), source.into_param().abi(), destination.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u64, u64>>(result__) 3983 }) 3984 } 3985 pub fn IRandomAccessStreamStatics<R, F: FnOnce(&IRandomAccessStreamStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 3986 static mut SHARED: ::windows::runtime::FactoryCache<RandomAccessStream, IRandomAccessStreamStatics> = ::windows::runtime::FactoryCache::new(); 3987 unsafe { SHARED.call(callback) } 3988 } 3989 } 3990 impl ::windows::runtime::RuntimeName for RandomAccessStream { 3991 const NAME: &'static str = "Windows.Storage.Streams.RandomAccessStream"; 3992 } 3993 #[repr(transparent)] 3994 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 3995 pub struct RandomAccessStreamOverStream(::windows::runtime::IInspectable); 3996 impl RandomAccessStreamOverStream { 3997 pub fn Size(&self) -> ::windows::runtime::Result<u64> { 3998 let this = self; 3999 unsafe { 4000 let mut result__: u64 = ::std::mem::zeroed(); 4001 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 4002 } 4003 } 4004 pub fn SetSize(&self, value: u64) -> ::windows::runtime::Result<()> { 4005 let this = self; 4006 unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() } 4007 } 4008 pub fn GetInputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IInputStream> { 4009 let this = self; 4010 unsafe { 4011 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4012 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IInputStream>(result__) 4013 } 4014 } 4015 pub fn GetOutputStreamAt(&self, position: u64) -> ::windows::runtime::Result<IOutputStream> { 4016 let this = self; 4017 unsafe { 4018 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4019 (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<IOutputStream>(result__) 4020 } 4021 } 4022 pub fn Position(&self) -> ::windows::runtime::Result<u64> { 4023 let this = self; 4024 unsafe { 4025 let mut result__: u64 = ::std::mem::zeroed(); 4026 (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__) 4027 } 4028 } 4029 pub fn Seek(&self, position: u64) -> ::windows::runtime::Result<()> { 4030 let this = self; 4031 unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), position).ok() } 4032 } 4033 pub fn CloneStream(&self) -> ::windows::runtime::Result<IRandomAccessStream> { 4034 let this = self; 4035 unsafe { 4036 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4037 (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<IRandomAccessStream>(result__) 4038 } 4039 } 4040 pub fn CanRead(&self) -> ::windows::runtime::Result<bool> { 4041 let this = self; 4042 unsafe { 4043 let mut result__: bool = ::std::mem::zeroed(); 4044 (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 4045 } 4046 } 4047 pub fn CanWrite(&self) -> ::windows::runtime::Result<bool> { 4048 let this = self; 4049 unsafe { 4050 let mut result__: bool = ::std::mem::zeroed(); 4051 (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__) 4052 } 4053 } 4054 #[cfg(feature = "Foundation")] 4055 pub fn Close(&self) -> ::windows::runtime::Result<()> { 4056 let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?; 4057 unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() } 4058 } 4059 #[cfg(feature = "Foundation")] 4060 pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0, count: u32, options: InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>> { 4061 let this = &::windows::runtime::Interface::cast::<IInputStream>(self)?; 4062 unsafe { 4063 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4064 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<IBuffer, u32>>(result__) 4065 } 4066 } 4067 #[cfg(feature = "Foundation")] 4068 pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> { 4069 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 4070 unsafe { 4071 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4072 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__) 4073 } 4074 } 4075 #[cfg(feature = "Foundation")] 4076 pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> { 4077 let this = &::windows::runtime::Interface::cast::<IOutputStream>(self)?; 4078 unsafe { 4079 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4080 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__) 4081 } 4082 } 4083 } 4084 unsafe impl ::windows::runtime::RuntimeType for RandomAccessStreamOverStream { 4085 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.RandomAccessStreamOverStream;{905a0fe1-bc53-11df-8c49-001e4fc686da})"); 4086 } 4087 unsafe impl ::windows::runtime::Interface for RandomAccessStreamOverStream { 4088 type Vtable = IRandomAccessStream_abi; 4089 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2421821409, 48211, 4575, [140, 73, 0, 30, 79, 198, 134, 218]); 4090 } 4091 impl ::windows::runtime::RuntimeName for RandomAccessStreamOverStream { 4092 const NAME: &'static str = "Windows.Storage.Streams.RandomAccessStreamOverStream"; 4093 } 4094 impl ::std::convert::From<RandomAccessStreamOverStream> for ::windows::runtime::IUnknown { 4095 fn from(value: RandomAccessStreamOverStream) -> Self { 4096 unsafe { ::std::mem::transmute(value) } 4097 } 4098 } 4099 impl ::std::convert::From<&RandomAccessStreamOverStream> for ::windows::runtime::IUnknown { 4100 fn from(value: &RandomAccessStreamOverStream) -> Self { 4101 ::std::convert::From::from(::std::clone::Clone::clone(value)) 4102 } 4103 } 4104 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for RandomAccessStreamOverStream { 4105 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 4106 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 4107 } 4108 } 4109 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &RandomAccessStreamOverStream { 4110 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 4111 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 4112 } 4113 } 4114 impl ::std::convert::From<RandomAccessStreamOverStream> for ::windows::runtime::IInspectable { 4115 fn from(value: RandomAccessStreamOverStream) -> Self { 4116 value.0 4117 } 4118 } 4119 impl ::std::convert::From<&RandomAccessStreamOverStream> for ::windows::runtime::IInspectable { 4120 fn from(value: &RandomAccessStreamOverStream) -> Self { 4121 value.0.clone() 4122 } 4123 } 4124 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for RandomAccessStreamOverStream { 4125 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 4126 ::windows::runtime::Param::Owned(self.0) 4127 } 4128 } 4129 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a RandomAccessStreamOverStream { 4130 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 4131 ::windows::runtime::Param::Borrowed(&self.0) 4132 } 4133 } 4134 impl ::std::convert::From<RandomAccessStreamOverStream> for IRandomAccessStream { 4135 fn from(value: RandomAccessStreamOverStream) -> Self { 4136 unsafe { ::std::mem::transmute(value) } 4137 } 4138 } 4139 impl ::std::convert::From<&RandomAccessStreamOverStream> for IRandomAccessStream { 4140 fn from(value: &RandomAccessStreamOverStream) -> Self { 4141 ::std::convert::From::from(::std::clone::Clone::clone(value)) 4142 } 4143 } 4144 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for RandomAccessStreamOverStream { 4145 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 4146 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStream>::into(self)) 4147 } 4148 } 4149 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStream> for &RandomAccessStreamOverStream { 4150 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStream> { 4151 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStream>::into(::std::clone::Clone::clone(self))) 4152 } 4153 } 4154 #[cfg(feature = "Foundation")] 4155 impl ::std::convert::TryFrom<RandomAccessStreamOverStream> for super::super::Foundation::IClosable { 4156 type Error = ::windows::runtime::Error; 4157 fn try_from(value: RandomAccessStreamOverStream) -> ::windows::runtime::Result<Self> { 4158 ::std::convert::TryFrom::try_from(&value) 4159 } 4160 } 4161 #[cfg(feature = "Foundation")] 4162 impl ::std::convert::TryFrom<&RandomAccessStreamOverStream> for super::super::Foundation::IClosable { 4163 type Error = ::windows::runtime::Error; 4164 fn try_from(value: &RandomAccessStreamOverStream) -> ::windows::runtime::Result<Self> { 4165 ::windows::runtime::Interface::cast(value) 4166 } 4167 } 4168 #[cfg(feature = "Foundation")] 4169 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for RandomAccessStreamOverStream { 4170 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 4171 ::windows::runtime::IntoParam::into_param(&self) 4172 } 4173 } 4174 #[cfg(feature = "Foundation")] 4175 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &RandomAccessStreamOverStream { 4176 fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> { 4177 ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 4178 } 4179 } 4180 impl ::std::convert::TryFrom<RandomAccessStreamOverStream> for IInputStream { 4181 type Error = ::windows::runtime::Error; 4182 fn try_from(value: RandomAccessStreamOverStream) -> ::windows::runtime::Result<Self> { 4183 ::std::convert::TryFrom::try_from(&value) 4184 } 4185 } 4186 impl ::std::convert::TryFrom<&RandomAccessStreamOverStream> for IInputStream { 4187 type Error = ::windows::runtime::Error; 4188 fn try_from(value: &RandomAccessStreamOverStream) -> ::windows::runtime::Result<Self> { 4189 ::windows::runtime::Interface::cast(value) 4190 } 4191 } 4192 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for RandomAccessStreamOverStream { 4193 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 4194 ::windows::runtime::IntoParam::into_param(&self) 4195 } 4196 } 4197 impl<'a> ::windows::runtime::IntoParam<'a, IInputStream> for &RandomAccessStreamOverStream { 4198 fn into_param(self) -> ::windows::runtime::Param<'a, IInputStream> { 4199 ::std::convert::TryInto::<IInputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 4200 } 4201 } 4202 impl ::std::convert::TryFrom<RandomAccessStreamOverStream> for IOutputStream { 4203 type Error = ::windows::runtime::Error; 4204 fn try_from(value: RandomAccessStreamOverStream) -> ::windows::runtime::Result<Self> { 4205 ::std::convert::TryFrom::try_from(&value) 4206 } 4207 } 4208 impl ::std::convert::TryFrom<&RandomAccessStreamOverStream> for IOutputStream { 4209 type Error = ::windows::runtime::Error; 4210 fn try_from(value: &RandomAccessStreamOverStream) -> ::windows::runtime::Result<Self> { 4211 ::windows::runtime::Interface::cast(value) 4212 } 4213 } 4214 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for RandomAccessStreamOverStream { 4215 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 4216 ::windows::runtime::IntoParam::into_param(&self) 4217 } 4218 } 4219 impl<'a> ::windows::runtime::IntoParam<'a, IOutputStream> for &RandomAccessStreamOverStream { 4220 fn into_param(self) -> ::windows::runtime::Param<'a, IOutputStream> { 4221 ::std::convert::TryInto::<IOutputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None) 4222 } 4223 } 4224 unsafe impl ::std::marker::Send for RandomAccessStreamOverStream {} 4225 unsafe impl ::std::marker::Sync for RandomAccessStreamOverStream {} 4226 #[repr(transparent)] 4227 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)] 4228 pub struct RandomAccessStreamReference(::windows::runtime::IInspectable); 4229 impl RandomAccessStreamReference { 4230 #[cfg(feature = "Foundation")] 4231 pub fn OpenReadAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<IRandomAccessStreamWithContentType>> { 4232 let this = self; 4233 unsafe { 4234 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4235 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<IRandomAccessStreamWithContentType>>(result__) 4236 } 4237 } 4238 pub fn CreateFromFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::IStorageFile>>(file: Param0) -> ::windows::runtime::Result<RandomAccessStreamReference> { 4239 Self::IRandomAccessStreamReferenceStatics(|this| unsafe { 4240 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4241 (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), file.into_param().abi(), &mut result__).from_abi::<RandomAccessStreamReference>(result__) 4242 }) 4243 } 4244 #[cfg(feature = "Foundation")] 4245 pub fn CreateFromUri<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>>(uri: Param0) -> ::windows::runtime::Result<RandomAccessStreamReference> { 4246 Self::IRandomAccessStreamReferenceStatics(|this| unsafe { 4247 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4248 (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), uri.into_param().abi(), &mut result__).from_abi::<RandomAccessStreamReference>(result__) 4249 }) 4250 } 4251 pub fn CreateFromStream<'a, Param0: ::windows::runtime::IntoParam<'a, IRandomAccessStream>>(stream: Param0) -> ::windows::runtime::Result<RandomAccessStreamReference> { 4252 Self::IRandomAccessStreamReferenceStatics(|this| unsafe { 4253 let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed(); 4254 (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), stream.into_param().abi(), &mut result__).from_abi::<RandomAccessStreamReference>(result__) 4255 }) 4256 } 4257 pub fn IRandomAccessStreamReferenceStatics<R, F: FnOnce(&IRandomAccessStreamReferenceStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> { 4258 static mut SHARED: ::windows::runtime::FactoryCache<RandomAccessStreamReference, IRandomAccessStreamReferenceStatics> = ::windows::runtime::FactoryCache::new(); 4259 unsafe { SHARED.call(callback) } 4260 } 4261 } 4262 unsafe impl ::windows::runtime::RuntimeType for RandomAccessStreamReference { 4263 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.Streams.RandomAccessStreamReference;{33ee3134-1dd6-4e3a-8067-d1c162e8642b})"); 4264 } 4265 unsafe impl ::windows::runtime::Interface for RandomAccessStreamReference { 4266 type Vtable = IRandomAccessStreamReference_abi; 4267 const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(871248180, 7638, 20026, [128, 103, 209, 193, 98, 232, 100, 43]); 4268 } 4269 impl ::windows::runtime::RuntimeName for RandomAccessStreamReference { 4270 const NAME: &'static str = "Windows.Storage.Streams.RandomAccessStreamReference"; 4271 } 4272 impl ::std::convert::From<RandomAccessStreamReference> for ::windows::runtime::IUnknown { 4273 fn from(value: RandomAccessStreamReference) -> Self { 4274 unsafe { ::std::mem::transmute(value) } 4275 } 4276 } 4277 impl ::std::convert::From<&RandomAccessStreamReference> for ::windows::runtime::IUnknown { 4278 fn from(value: &RandomAccessStreamReference) -> Self { 4279 ::std::convert::From::from(::std::clone::Clone::clone(value)) 4280 } 4281 } 4282 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for RandomAccessStreamReference { 4283 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 4284 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self)) 4285 } 4286 } 4287 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &RandomAccessStreamReference { 4288 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> { 4289 ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self))) 4290 } 4291 } 4292 impl ::std::convert::From<RandomAccessStreamReference> for ::windows::runtime::IInspectable { 4293 fn from(value: RandomAccessStreamReference) -> Self { 4294 value.0 4295 } 4296 } 4297 impl ::std::convert::From<&RandomAccessStreamReference> for ::windows::runtime::IInspectable { 4298 fn from(value: &RandomAccessStreamReference) -> Self { 4299 value.0.clone() 4300 } 4301 } 4302 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for RandomAccessStreamReference { 4303 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 4304 ::windows::runtime::Param::Owned(self.0) 4305 } 4306 } 4307 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a RandomAccessStreamReference { 4308 fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> { 4309 ::windows::runtime::Param::Borrowed(&self.0) 4310 } 4311 } 4312 impl ::std::convert::From<RandomAccessStreamReference> for IRandomAccessStreamReference { 4313 fn from(value: RandomAccessStreamReference) -> Self { 4314 unsafe { ::std::mem::transmute(value) } 4315 } 4316 } 4317 impl ::std::convert::From<&RandomAccessStreamReference> for IRandomAccessStreamReference { 4318 fn from(value: &RandomAccessStreamReference) -> Self { 4319 ::std::convert::From::from(::std::clone::Clone::clone(value)) 4320 } 4321 } 4322 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStreamReference> for RandomAccessStreamReference { 4323 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStreamReference> { 4324 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStreamReference>::into(self)) 4325 } 4326 } 4327 impl<'a> ::windows::runtime::IntoParam<'a, IRandomAccessStreamReference> for &RandomAccessStreamReference { 4328 fn into_param(self) -> ::windows::runtime::Param<'a, IRandomAccessStreamReference> { 4329 ::windows::runtime::Param::Owned(::std::convert::Into::<IRandomAccessStreamReference>::into(::std::clone::Clone::clone(self))) 4330 } 4331 } 4332 unsafe impl ::std::marker::Send for RandomAccessStreamReference {} 4333 unsafe impl ::std::marker::Sync for RandomAccessStreamReference {} 4334 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)] 4335 #[repr(transparent)] 4336 pub struct UnicodeEncoding(pub i32); 4337 impl UnicodeEncoding { 4338 pub const Utf8: UnicodeEncoding = UnicodeEncoding(0i32); 4339 pub const Utf16LE: UnicodeEncoding = UnicodeEncoding(1i32); 4340 pub const Utf16BE: UnicodeEncoding = UnicodeEncoding(2i32); 4341 } 4342 impl ::std::convert::From<i32> for UnicodeEncoding { 4343 fn from(value: i32) -> Self { 4344 Self(value) 4345 } 4346 } 4347 unsafe impl ::windows::runtime::Abi for UnicodeEncoding { 4348 type Abi = Self; 4349 type DefaultType = Self; 4350 } 4351 unsafe impl ::windows::runtime::RuntimeType for UnicodeEncoding { 4352 const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.Streams.UnicodeEncoding;i4)"); 4353 } 4354