]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/System/Com/StructuredStorage/mod.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Win32 / System / Com / StructuredStorage / mod.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2#[inline]
3pub unsafe fn CoGetInstanceFromFile<P0, P1>(pserverinfo: ::core::option::Option<*const super::COSERVERINFO>, pclsid: ::core::option::Option<*const ::windows::core::GUID>, punkouter: P0, dwclsctx: super::CLSCTX, grfmode: u32, pwszname: P1, presults: &mut [super::MULTI_QI]) -> ::windows::core::Result<()>
4where
5 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
6 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
7{
8 ::windows::imp::link ! ( "ole32.dll""system" fn CoGetInstanceFromFile ( pserverinfo : *const super:: COSERVERINFO , pclsid : *const :: windows::core::GUID , punkouter : * mut::core::ffi::c_void , dwclsctx : super:: CLSCTX , grfmode : u32 , pwszname : :: windows::core::PCWSTR , dwcount : u32 , presults : *mut super:: MULTI_QI ) -> :: windows::core::HRESULT );
9 CoGetInstanceFromFile(::core::mem::transmute(pserverinfo.unwrap_or(::std::ptr::null())), ::core::mem::transmute(pclsid.unwrap_or(::std::ptr::null())), punkouter.into_param().abi(), dwclsctx, grfmode, pwszname.into_param().abi(), presults.len() as _, ::core::mem::transmute(presults.as_ptr())).ok()
10}
11#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
12#[inline]
13pub unsafe fn CoGetInstanceFromIStorage<P0, P1>(pserverinfo: ::core::option::Option<*const super::COSERVERINFO>, pclsid: ::core::option::Option<*const ::windows::core::GUID>, punkouter: P0, dwclsctx: super::CLSCTX, pstg: P1, presults: &mut [super::MULTI_QI]) -> ::windows::core::Result<()>
14where
15 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
16 P1: ::windows::core::IntoParam<IStorage>,
17{
18 ::windows::imp::link ! ( "ole32.dll""system" fn CoGetInstanceFromIStorage ( pserverinfo : *const super:: COSERVERINFO , pclsid : *const :: windows::core::GUID , punkouter : * mut::core::ffi::c_void , dwclsctx : super:: CLSCTX , pstg : * mut::core::ffi::c_void , dwcount : u32 , presults : *mut super:: MULTI_QI ) -> :: windows::core::HRESULT );
19 CoGetInstanceFromIStorage(::core::mem::transmute(pserverinfo.unwrap_or(::std::ptr::null())), ::core::mem::transmute(pclsid.unwrap_or(::std::ptr::null())), punkouter.into_param().abi(), dwclsctx, pstg.into_param().abi(), presults.len() as _, ::core::mem::transmute(presults.as_ptr())).ok()
20}
21#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
22#[inline]
23pub unsafe fn CoGetInterfaceAndReleaseStream<P0, T>(pstm: P0) -> ::windows::core::Result<T>
24where
25 P0: ::windows::core::IntoParam<super::IStream>,
26 T: ::windows::core::ComInterface,
27{
28 ::windows::imp::link ! ( "ole32.dll""system" fn CoGetInterfaceAndReleaseStream ( pstm : * mut::core::ffi::c_void , iid : *const :: windows::core::GUID , ppv : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
29 let mut result__ = ::std::ptr::null_mut();
30 CoGetInterfaceAndReleaseStream(pstm.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
31}
32#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
33#[cfg(feature = "Win32_Foundation")]
34#[inline]
35pub unsafe fn CreateILockBytesOnHGlobal<P0, P1>(hglobal: P0, fdeleteonrelease: P1) -> ::windows::core::Result<ILockBytes>
36where
37 P0: ::windows::core::IntoParam<super::super::super::Foundation::HGLOBAL>,
38 P1: ::windows::core::IntoParam<super::super::super::Foundation::BOOL>,
39{
40 ::windows::imp::link ! ( "ole32.dll""system" fn CreateILockBytesOnHGlobal ( hglobal : super::super::super::Foundation:: HGLOBAL , fdeleteonrelease : super::super::super::Foundation:: BOOL , pplkbyt : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
41 let mut result__ = ::windows::core::zeroed::<ILockBytes>();
42 CreateILockBytesOnHGlobal(hglobal.into_param().abi(), fdeleteonrelease.into_param().abi(), &mut result__).from_abi(result__)
43}
44#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
45#[cfg(feature = "Win32_Foundation")]
46#[inline]
47pub unsafe fn CreateStreamOnHGlobal<P0, P1>(hglobal: P0, fdeleteonrelease: P1) -> ::windows::core::Result<super::IStream>
48where
49 P0: ::windows::core::IntoParam<super::super::super::Foundation::HGLOBAL>,
50 P1: ::windows::core::IntoParam<super::super::super::Foundation::BOOL>,
51{
52 ::windows::imp::link ! ( "ole32.dll""system" fn CreateStreamOnHGlobal ( hglobal : super::super::super::Foundation:: HGLOBAL , fdeleteonrelease : super::super::super::Foundation:: BOOL , ppstm : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
53 let mut result__ = ::windows::core::zeroed::<super::IStream>();
54 CreateStreamOnHGlobal(hglobal.into_param().abi(), fdeleteonrelease.into_param().abi(), &mut result__).from_abi(result__)
55}
56#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
57#[inline]
58pub unsafe fn FmtIdToPropStgName(pfmtid: *const ::windows::core::GUID, oszname: ::windows::core::PWSTR) -> ::windows::core::Result<()> {
59 ::windows::imp::link ! ( "ole32.dll""system" fn FmtIdToPropStgName ( pfmtid : *const :: windows::core::GUID , oszname : :: windows::core::PWSTR ) -> :: windows::core::HRESULT );
60 FmtIdToPropStgName(pfmtid, ::core::mem::transmute(oszname)).ok()
61}
62#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
63#[cfg(feature = "Win32_Foundation")]
64#[inline]
65pub unsafe fn FreePropVariantArray(rgvars: &mut [PROPVARIANT]) -> ::windows::core::Result<()> {
66 ::windows::imp::link ! ( "ole32.dll""system" fn FreePropVariantArray ( cvariants : u32 , rgvars : *mut PROPVARIANT ) -> :: windows::core::HRESULT );
67 FreePropVariantArray(rgvars.len() as _, ::core::mem::transmute(rgvars.as_ptr())).ok()
68}
69#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
70#[inline]
71pub unsafe fn GetConvertStg<P0>(pstg: P0) -> ::windows::core::Result<()>
72where
73 P0: ::windows::core::IntoParam<IStorage>,
74{
75 ::windows::imp::link ! ( "ole32.dll""system" fn GetConvertStg ( pstg : * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
76 GetConvertStg(pstg.into_param().abi()).ok()
77}
78#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
79#[cfg(feature = "Win32_Foundation")]
80#[inline]
81pub unsafe fn GetHGlobalFromILockBytes<P0>(plkbyt: P0) -> ::windows::core::Result<super::super::super::Foundation::HGLOBAL>
82where
83 P0: ::windows::core::IntoParam<ILockBytes>,
84{
85 ::windows::imp::link ! ( "ole32.dll""system" fn GetHGlobalFromILockBytes ( plkbyt : * mut::core::ffi::c_void , phglobal : *mut super::super::super::Foundation:: HGLOBAL ) -> :: windows::core::HRESULT );
86 let mut result__ = ::windows::core::zeroed::<super::super::super::Foundation::HGLOBAL>();
87 GetHGlobalFromILockBytes(plkbyt.into_param().abi(), &mut result__).from_abi(result__)
88}
89#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
90#[cfg(feature = "Win32_Foundation")]
91#[inline]
92pub unsafe fn GetHGlobalFromStream<P0>(pstm: P0) -> ::windows::core::Result<super::super::super::Foundation::HGLOBAL>
93where
94 P0: ::windows::core::IntoParam<super::IStream>,
95{
96 ::windows::imp::link ! ( "ole32.dll""system" fn GetHGlobalFromStream ( pstm : * mut::core::ffi::c_void , phglobal : *mut super::super::super::Foundation:: HGLOBAL ) -> :: windows::core::HRESULT );
97 let mut result__ = ::windows::core::zeroed::<super::super::super::Foundation::HGLOBAL>();
98 GetHGlobalFromStream(pstm.into_param().abi(), &mut result__).from_abi(result__)
99}
100#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
101#[inline]
102pub unsafe fn OleConvertIStorageToOLESTREAM<P0>(pstg: P0) -> ::windows::core::Result<OLESTREAM>
103where
104 P0: ::windows::core::IntoParam<IStorage>,
105{
106 ::windows::imp::link ! ( "ole32.dll""system" fn OleConvertIStorageToOLESTREAM ( pstg : * mut::core::ffi::c_void , lpolestream : *mut OLESTREAM ) -> :: windows::core::HRESULT );
107 let mut result__ = ::windows::core::zeroed::<OLESTREAM>();
108 OleConvertIStorageToOLESTREAM(pstg.into_param().abi(), &mut result__).from_abi(result__)
109}
110#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"]
111#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
112#[inline]
113pub unsafe fn OleConvertIStorageToOLESTREAMEx<P0>(pstg: P0, cfformat: u16, lwidth: i32, lheight: i32, dwsize: u32, pmedium: *const super::STGMEDIUM) -> ::windows::core::Result<OLESTREAM>
114where
115 P0: ::windows::core::IntoParam<IStorage>,
116{
117 ::windows::imp::link ! ( "ole32.dll""system" fn OleConvertIStorageToOLESTREAMEx ( pstg : * mut::core::ffi::c_void , cfformat : u16 , lwidth : i32 , lheight : i32 , dwsize : u32 , pmedium : *const super:: STGMEDIUM , polestm : *mut OLESTREAM ) -> :: windows::core::HRESULT );
118 let mut result__ = ::windows::core::zeroed::<OLESTREAM>();
119 OleConvertIStorageToOLESTREAMEx(pstg.into_param().abi(), cfformat, lwidth, lheight, dwsize, pmedium, &mut result__).from_abi(result__)
120}
121#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
122#[inline]
123pub unsafe fn OleConvertOLESTREAMToIStorage<P0>(lpolestream: *const OLESTREAM, pstg: P0, ptd: *const super::DVTARGETDEVICE) -> ::windows::core::Result<()>
124where
125 P0: ::windows::core::IntoParam<IStorage>,
126{
127 ::windows::imp::link ! ( "ole32.dll""system" fn OleConvertOLESTREAMToIStorage ( lpolestream : *const OLESTREAM , pstg : * mut::core::ffi::c_void , ptd : *const super:: DVTARGETDEVICE ) -> :: windows::core::HRESULT );
128 OleConvertOLESTREAMToIStorage(lpolestream, pstg.into_param().abi(), ptd).ok()
129}
130#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"]
131#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
132#[inline]
133pub unsafe fn OleConvertOLESTREAMToIStorageEx<P0>(polestm: *const OLESTREAM, pstg: P0, pcfformat: *mut u16, plwwidth: *mut i32, plheight: *mut i32, pdwsize: *mut u32, pmedium: *mut super::STGMEDIUM) -> ::windows::core::Result<()>
134where
135 P0: ::windows::core::IntoParam<IStorage>,
136{
137 ::windows::imp::link ! ( "ole32.dll""system" fn OleConvertOLESTREAMToIStorageEx ( polestm : *const OLESTREAM , pstg : * mut::core::ffi::c_void , pcfformat : *mut u16 , plwwidth : *mut i32 , plheight : *mut i32 , pdwsize : *mut u32 , pmedium : *mut super:: STGMEDIUM ) -> :: windows::core::HRESULT );
138 OleConvertOLESTREAMToIStorageEx(polestm, pstg.into_param().abi(), pcfformat, plwwidth, plheight, pdwsize, pmedium).ok()
139}
140#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
141#[inline]
142pub unsafe fn PropStgNameToFmtId<P0>(oszname: P0) -> ::windows::core::Result<::windows::core::GUID>
143where
144 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
145{
146 ::windows::imp::link ! ( "ole32.dll""system" fn PropStgNameToFmtId ( oszname : :: windows::core::PCWSTR , pfmtid : *mut :: windows::core::GUID ) -> :: windows::core::HRESULT );
147 let mut result__ = ::windows::core::zeroed::<::windows::core::GUID>();
148 PropStgNameToFmtId(oszname.into_param().abi(), &mut result__).from_abi(result__)
149}
150#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
151#[cfg(feature = "Win32_Foundation")]
152#[inline]
153pub unsafe fn PropVariantClear(pvar: *mut PROPVARIANT) -> ::windows::core::Result<()> {
154 ::windows::imp::link ! ( "ole32.dll""system" fn PropVariantClear ( pvar : *mut PROPVARIANT ) -> :: windows::core::HRESULT );
155 PropVariantClear(pvar).ok()
156}
157#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
158#[cfg(feature = "Win32_Foundation")]
159#[inline]
160pub unsafe fn PropVariantCopy(pvardest: *mut PROPVARIANT, pvarsrc: *const PROPVARIANT) -> ::windows::core::Result<()> {
161 ::windows::imp::link ! ( "ole32.dll""system" fn PropVariantCopy ( pvardest : *mut PROPVARIANT , pvarsrc : *const PROPVARIANT ) -> :: windows::core::HRESULT );
162 PropVariantCopy(pvardest, pvarsrc).ok()
163}
164#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
165#[inline]
166pub unsafe fn ReadClassStg<P0>(pstg: P0) -> ::windows::core::Result<::windows::core::GUID>
167where
168 P0: ::windows::core::IntoParam<IStorage>,
169{
170 ::windows::imp::link ! ( "ole32.dll""system" fn ReadClassStg ( pstg : * mut::core::ffi::c_void , pclsid : *mut :: windows::core::GUID ) -> :: windows::core::HRESULT );
171 let mut result__ = ::windows::core::zeroed::<::windows::core::GUID>();
172 ReadClassStg(pstg.into_param().abi(), &mut result__).from_abi(result__)
173}
174#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
175#[inline]
176pub unsafe fn ReadClassStm<P0>(pstm: P0) -> ::windows::core::Result<::windows::core::GUID>
177where
178 P0: ::windows::core::IntoParam<super::IStream>,
179{
180 ::windows::imp::link ! ( "ole32.dll""system" fn ReadClassStm ( pstm : * mut::core::ffi::c_void , pclsid : *mut :: windows::core::GUID ) -> :: windows::core::HRESULT );
181 let mut result__ = ::windows::core::zeroed::<::windows::core::GUID>();
182 ReadClassStm(pstm.into_param().abi(), &mut result__).from_abi(result__)
183}
184#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
185#[inline]
186pub unsafe fn ReadFmtUserTypeStg<P0>(pstg: P0, pcf: *mut u16, lplpszusertype: ::core::option::Option<*mut ::windows::core::PWSTR>) -> ::windows::core::Result<()>
187where
188 P0: ::windows::core::IntoParam<IStorage>,
189{
190 ::windows::imp::link ! ( "ole32.dll""system" fn ReadFmtUserTypeStg ( pstg : * mut::core::ffi::c_void , pcf : *mut u16 , lplpszusertype : *mut :: windows::core::PWSTR ) -> :: windows::core::HRESULT );
191 ReadFmtUserTypeStg(pstg.into_param().abi(), pcf, ::core::mem::transmute(lplpszusertype.unwrap_or(::std::ptr::null_mut()))).ok()
192}
193#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
194#[cfg(feature = "Win32_Foundation")]
195#[inline]
196pub unsafe fn SetConvertStg<P0, P1>(pstg: P0, fconvert: P1) -> ::windows::core::Result<()>
197where
198 P0: ::windows::core::IntoParam<IStorage>,
199 P1: ::windows::core::IntoParam<super::super::super::Foundation::BOOL>,
200{
201 ::windows::imp::link ! ( "ole32.dll""system" fn SetConvertStg ( pstg : * mut::core::ffi::c_void , fconvert : super::super::super::Foundation:: BOOL ) -> :: windows::core::HRESULT );
202 SetConvertStg(pstg.into_param().abi(), fconvert.into_param().abi()).ok()
203}
204#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
205#[cfg(feature = "Win32_Foundation")]
206#[inline]
207pub unsafe fn StgConvertPropertyToVariant(pprop: *const SERIALIZEDPROPERTYVALUE, codepage: u16, pvar: *mut PROPVARIANT, pma: *const PMemoryAllocator) -> super::super::super::Foundation::BOOLEAN {
208 ::windows::imp::link ! ( "ole32.dll""system" fn StgConvertPropertyToVariant ( pprop : *const SERIALIZEDPROPERTYVALUE , codepage : u16 , pvar : *mut PROPVARIANT , pma : *const PMemoryAllocator ) -> super::super::super::Foundation:: BOOLEAN );
209 StgConvertPropertyToVariant(pprop, codepage, pvar, pma)
210}
211#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
212#[cfg(feature = "Win32_Foundation")]
213#[inline]
214pub unsafe fn StgConvertVariantToProperty<P0>(pvar: *const PROPVARIANT, codepage: u16, pprop: ::core::option::Option<*mut SERIALIZEDPROPERTYVALUE>, pcb: *mut u32, pid: u32, freserved: P0, pcindirect: ::core::option::Option<*mut u32>) -> *mut SERIALIZEDPROPERTYVALUE
215where
216 P0: ::windows::core::IntoParam<super::super::super::Foundation::BOOLEAN>,
217{
218 ::windows::imp::link ! ( "ole32.dll""system" fn StgConvertVariantToProperty ( pvar : *const PROPVARIANT , codepage : u16 , pprop : *mut SERIALIZEDPROPERTYVALUE , pcb : *mut u32 , pid : u32 , freserved : super::super::super::Foundation:: BOOLEAN , pcindirect : *mut u32 ) -> *mut SERIALIZEDPROPERTYVALUE );
219 StgConvertVariantToProperty(pvar, codepage, ::core::mem::transmute(pprop.unwrap_or(::std::ptr::null_mut())), pcb, pid, freserved.into_param().abi(), ::core::mem::transmute(pcindirect.unwrap_or(::std::ptr::null_mut())))
220}
221#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
222#[inline]
223pub unsafe fn StgCreateDocfile<P0>(pwcsname: P0, grfmode: super::STGM, reserved: u32) -> ::windows::core::Result<IStorage>
224where
225 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
226{
227 ::windows::imp::link ! ( "ole32.dll""system" fn StgCreateDocfile ( pwcsname : :: windows::core::PCWSTR , grfmode : super:: STGM , reserved : u32 , ppstgopen : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
228 let mut result__ = ::windows::core::zeroed::<IStorage>();
229 StgCreateDocfile(pwcsname.into_param().abi(), grfmode, reserved, &mut result__).from_abi(result__)
230}
231#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
232#[inline]
233pub unsafe fn StgCreateDocfileOnILockBytes<P0>(plkbyt: P0, grfmode: super::STGM, reserved: u32) -> ::windows::core::Result<IStorage>
234where
235 P0: ::windows::core::IntoParam<ILockBytes>,
236{
237 ::windows::imp::link ! ( "ole32.dll""system" fn StgCreateDocfileOnILockBytes ( plkbyt : * mut::core::ffi::c_void , grfmode : super:: STGM , reserved : u32 , ppstgopen : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
238 let mut result__ = ::windows::core::zeroed::<IStorage>();
239 StgCreateDocfileOnILockBytes(plkbyt.into_param().abi(), grfmode, reserved, &mut result__).from_abi(result__)
240}
241#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
242#[inline]
243pub unsafe fn StgCreatePropSetStg<P0>(pstorage: P0, dwreserved: u32) -> ::windows::core::Result<IPropertySetStorage>
244where
245 P0: ::windows::core::IntoParam<IStorage>,
246{
247 ::windows::imp::link ! ( "ole32.dll""system" fn StgCreatePropSetStg ( pstorage : * mut::core::ffi::c_void , dwreserved : u32 , pppropsetstg : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
248 let mut result__ = ::windows::core::zeroed::<IPropertySetStorage>();
249 StgCreatePropSetStg(pstorage.into_param().abi(), dwreserved, &mut result__).from_abi(result__)
250}
251#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
252#[inline]
253pub unsafe fn StgCreatePropStg<P0>(punk: P0, fmtid: *const ::windows::core::GUID, pclsid: *const ::windows::core::GUID, grfflags: u32, dwreserved: u32) -> ::windows::core::Result<IPropertyStorage>
254where
255 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
256{
257 ::windows::imp::link ! ( "ole32.dll""system" fn StgCreatePropStg ( punk : * mut::core::ffi::c_void , fmtid : *const :: windows::core::GUID , pclsid : *const :: windows::core::GUID , grfflags : u32 , dwreserved : u32 , pppropstg : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
258 let mut result__ = ::windows::core::zeroed::<IPropertyStorage>();
259 StgCreatePropStg(punk.into_param().abi(), fmtid, pclsid, grfflags, dwreserved, &mut result__).from_abi(result__)
260}
261#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Security\"`*"]
262#[cfg(feature = "Win32_Security")]
263#[inline]
264pub unsafe fn StgCreateStorageEx<P0, P1>(pwcsname: P0, grfmode: super::STGM, stgfmt: STGFMT, grfattrs: u32, pstgoptions: ::core::option::Option<*mut STGOPTIONS>, psecuritydescriptor: P1, riid: *const ::windows::core::GUID, ppobjectopen: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>
265where
266 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
267 P1: ::windows::core::IntoParam<super::super::super::Security::PSECURITY_DESCRIPTOR>,
268{
269 ::windows::imp::link ! ( "ole32.dll""system" fn StgCreateStorageEx ( pwcsname : :: windows::core::PCWSTR , grfmode : super:: STGM , stgfmt : STGFMT , grfattrs : u32 , pstgoptions : *mut STGOPTIONS , psecuritydescriptor : super::super::super::Security:: PSECURITY_DESCRIPTOR , riid : *const :: windows::core::GUID , ppobjectopen : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
270 StgCreateStorageEx(pwcsname.into_param().abi(), grfmode, stgfmt, grfattrs, ::core::mem::transmute(pstgoptions.unwrap_or(::std::ptr::null_mut())), psecuritydescriptor.into_param().abi(), riid, ppobjectopen).ok()
271}
272#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
273#[cfg(feature = "Win32_Foundation")]
274#[inline]
275pub unsafe fn StgDeserializePropVariant(pprop: *const SERIALIZEDPROPERTYVALUE, cbmax: u32) -> ::windows::core::Result<PROPVARIANT> {
276 ::windows::imp::link ! ( "propsys.dll""system" fn StgDeserializePropVariant ( pprop : *const SERIALIZEDPROPERTYVALUE , cbmax : u32 , ppropvar : *mut PROPVARIANT ) -> :: windows::core::HRESULT );
277 let mut result__ = ::windows::core::zeroed::<PROPVARIANT>();
278 StgDeserializePropVariant(pprop, cbmax, &mut result__).from_abi(result__)
279}
280#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
281#[inline]
282pub unsafe fn StgGetIFillLockBytesOnFile<P0>(pwcsname: P0) -> ::windows::core::Result<IFillLockBytes>
283where
284 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
285{
286 ::windows::imp::link ! ( "ole32.dll""system" fn StgGetIFillLockBytesOnFile ( pwcsname : :: windows::core::PCWSTR , ppflb : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
287 let mut result__ = ::windows::core::zeroed::<IFillLockBytes>();
288 StgGetIFillLockBytesOnFile(pwcsname.into_param().abi(), &mut result__).from_abi(result__)
289}
290#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
291#[inline]
292pub unsafe fn StgGetIFillLockBytesOnILockBytes<P0>(pilb: P0) -> ::windows::core::Result<IFillLockBytes>
293where
294 P0: ::windows::core::IntoParam<ILockBytes>,
295{
296 ::windows::imp::link ! ( "ole32.dll""system" fn StgGetIFillLockBytesOnILockBytes ( pilb : * mut::core::ffi::c_void , ppflb : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
297 let mut result__ = ::windows::core::zeroed::<IFillLockBytes>();
298 StgGetIFillLockBytesOnILockBytes(pilb.into_param().abi(), &mut result__).from_abi(result__)
299}
300#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
301#[inline]
302pub unsafe fn StgIsStorageFile<P0>(pwcsname: P0) -> ::windows::core::Result<()>
303where
304 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
305{
306 ::windows::imp::link ! ( "ole32.dll""system" fn StgIsStorageFile ( pwcsname : :: windows::core::PCWSTR ) -> :: windows::core::HRESULT );
307 StgIsStorageFile(pwcsname.into_param().abi()).ok()
308}
309#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
310#[inline]
311pub unsafe fn StgIsStorageILockBytes<P0>(plkbyt: P0) -> ::windows::core::Result<()>
312where
313 P0: ::windows::core::IntoParam<ILockBytes>,
314{
315 ::windows::imp::link ! ( "ole32.dll""system" fn StgIsStorageILockBytes ( plkbyt : * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
316 StgIsStorageILockBytes(plkbyt.into_param().abi()).ok()
317}
318#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
319#[inline]
320pub unsafe fn StgOpenAsyncDocfileOnIFillLockBytes<P0>(pflb: P0, grfmode: u32, asyncflags: u32) -> ::windows::core::Result<IStorage>
321where
322 P0: ::windows::core::IntoParam<IFillLockBytes>,
323{
324 ::windows::imp::link ! ( "ole32.dll""system" fn StgOpenAsyncDocfileOnIFillLockBytes ( pflb : * mut::core::ffi::c_void , grfmode : u32 , asyncflags : u32 , ppstgopen : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
325 let mut result__ = ::windows::core::zeroed::<IStorage>();
326 StgOpenAsyncDocfileOnIFillLockBytes(pflb.into_param().abi(), grfmode, asyncflags, &mut result__).from_abi(result__)
327}
328#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
329#[inline]
330pub unsafe fn StgOpenLayoutDocfile<P0>(pwcsdfname: P0, grfmode: u32, reserved: u32) -> ::windows::core::Result<IStorage>
331where
332 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
333{
334 ::windows::imp::link ! ( "dflayout.dll""system" fn StgOpenLayoutDocfile ( pwcsdfname : :: windows::core::PCWSTR , grfmode : u32 , reserved : u32 , ppstgopen : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
335 let mut result__ = ::windows::core::zeroed::<IStorage>();
336 StgOpenLayoutDocfile(pwcsdfname.into_param().abi(), grfmode, reserved, &mut result__).from_abi(result__)
337}
338#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
339#[inline]
340pub unsafe fn StgOpenPropStg<P0>(punk: P0, fmtid: *const ::windows::core::GUID, grfflags: u32, dwreserved: u32) -> ::windows::core::Result<IPropertyStorage>
341where
342 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
343{
344 ::windows::imp::link ! ( "ole32.dll""system" fn StgOpenPropStg ( punk : * mut::core::ffi::c_void , fmtid : *const :: windows::core::GUID , grfflags : u32 , dwreserved : u32 , pppropstg : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
345 let mut result__ = ::windows::core::zeroed::<IPropertyStorage>();
346 StgOpenPropStg(punk.into_param().abi(), fmtid, grfflags, dwreserved, &mut result__).from_abi(result__)
347}
348#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
349#[inline]
350pub unsafe fn StgOpenStorage<P0, P1>(pwcsname: P0, pstgpriority: P1, grfmode: super::STGM, snbexclude: ::core::option::Option<*const *const u16>, reserved: u32) -> ::windows::core::Result<IStorage>
351where
352 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
353 P1: ::windows::core::IntoParam<IStorage>,
354{
355 ::windows::imp::link ! ( "ole32.dll""system" fn StgOpenStorage ( pwcsname : :: windows::core::PCWSTR , pstgpriority : * mut::core::ffi::c_void , grfmode : super:: STGM , snbexclude : *const *const u16 , reserved : u32 , ppstgopen : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
356 let mut result__ = ::windows::core::zeroed::<IStorage>();
357 StgOpenStorage(pwcsname.into_param().abi(), pstgpriority.into_param().abi(), grfmode, ::core::mem::transmute(snbexclude.unwrap_or(::std::ptr::null())), reserved, &mut result__).from_abi(result__)
358}
359#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Security\"`*"]
360#[cfg(feature = "Win32_Security")]
361#[inline]
362pub unsafe fn StgOpenStorageEx<P0, P1>(pwcsname: P0, grfmode: super::STGM, stgfmt: STGFMT, grfattrs: u32, pstgoptions: ::core::option::Option<*mut STGOPTIONS>, psecuritydescriptor: P1, riid: *const ::windows::core::GUID, ppobjectopen: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>
363where
364 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
365 P1: ::windows::core::IntoParam<super::super::super::Security::PSECURITY_DESCRIPTOR>,
366{
367 ::windows::imp::link ! ( "ole32.dll""system" fn StgOpenStorageEx ( pwcsname : :: windows::core::PCWSTR , grfmode : super:: STGM , stgfmt : STGFMT , grfattrs : u32 , pstgoptions : *mut STGOPTIONS , psecuritydescriptor : super::super::super::Security:: PSECURITY_DESCRIPTOR , riid : *const :: windows::core::GUID , ppobjectopen : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
368 StgOpenStorageEx(pwcsname.into_param().abi(), grfmode, stgfmt, grfattrs, ::core::mem::transmute(pstgoptions.unwrap_or(::std::ptr::null_mut())), psecuritydescriptor.into_param().abi(), riid, ppobjectopen).ok()
369}
370#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
371#[inline]
372pub unsafe fn StgOpenStorageOnILockBytes<P0, P1>(plkbyt: P0, pstgpriority: P1, grfmode: super::STGM, snbexclude: ::core::option::Option<*const *const u16>, reserved: u32) -> ::windows::core::Result<IStorage>
373where
374 P0: ::windows::core::IntoParam<ILockBytes>,
375 P1: ::windows::core::IntoParam<IStorage>,
376{
377 ::windows::imp::link ! ( "ole32.dll""system" fn StgOpenStorageOnILockBytes ( plkbyt : * mut::core::ffi::c_void , pstgpriority : * mut::core::ffi::c_void , grfmode : super:: STGM , snbexclude : *const *const u16 , reserved : u32 , ppstgopen : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
378 let mut result__ = ::windows::core::zeroed::<IStorage>();
379 StgOpenStorageOnILockBytes(plkbyt.into_param().abi(), pstgpriority.into_param().abi(), grfmode, ::core::mem::transmute(snbexclude.unwrap_or(::std::ptr::null())), reserved, &mut result__).from_abi(result__)
380}
381#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
382#[inline]
383pub unsafe fn StgPropertyLengthAsVariant(pprop: *const SERIALIZEDPROPERTYVALUE, cbprop: u32, codepage: u16, breserved: u8) -> u32 {
384 ::windows::imp::link ! ( "ole32.dll""system" fn StgPropertyLengthAsVariant ( pprop : *const SERIALIZEDPROPERTYVALUE , cbprop : u32 , codepage : u16 , breserved : u8 ) -> u32 );
385 StgPropertyLengthAsVariant(pprop, cbprop, codepage, breserved)
386}
387#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
388#[cfg(feature = "Win32_Foundation")]
389#[inline]
390pub unsafe fn StgSerializePropVariant(ppropvar: *const PROPVARIANT, ppprop: *mut *mut SERIALIZEDPROPERTYVALUE, pcb: *mut u32) -> ::windows::core::Result<()> {
391 ::windows::imp::link ! ( "propsys.dll""system" fn StgSerializePropVariant ( ppropvar : *const PROPVARIANT , ppprop : *mut *mut SERIALIZEDPROPERTYVALUE , pcb : *mut u32 ) -> :: windows::core::HRESULT );
392 StgSerializePropVariant(ppropvar, ppprop, pcb).ok()
393}
394#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
395#[cfg(feature = "Win32_Foundation")]
396#[inline]
397pub unsafe fn StgSetTimes<P0>(lpszname: P0, pctime: ::core::option::Option<*const super::super::super::Foundation::FILETIME>, patime: ::core::option::Option<*const super::super::super::Foundation::FILETIME>, pmtime: ::core::option::Option<*const super::super::super::Foundation::FILETIME>) -> ::windows::core::Result<()>
398where
399 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
400{
401 ::windows::imp::link ! ( "ole32.dll""system" fn StgSetTimes ( lpszname : :: windows::core::PCWSTR , pctime : *const super::super::super::Foundation:: FILETIME , patime : *const super::super::super::Foundation:: FILETIME , pmtime : *const super::super::super::Foundation:: FILETIME ) -> :: windows::core::HRESULT );
402 StgSetTimes(lpszname.into_param().abi(), ::core::mem::transmute(pctime.unwrap_or(::std::ptr::null())), ::core::mem::transmute(patime.unwrap_or(::std::ptr::null())), ::core::mem::transmute(pmtime.unwrap_or(::std::ptr::null()))).ok()
403}
404#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
405#[inline]
406pub unsafe fn WriteClassStg<P0>(pstg: P0, rclsid: *const ::windows::core::GUID) -> ::windows::core::Result<()>
407where
408 P0: ::windows::core::IntoParam<IStorage>,
409{
410 ::windows::imp::link ! ( "ole32.dll""system" fn WriteClassStg ( pstg : * mut::core::ffi::c_void , rclsid : *const :: windows::core::GUID ) -> :: windows::core::HRESULT );
411 WriteClassStg(pstg.into_param().abi(), rclsid).ok()
412}
413#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
414#[inline]
415pub unsafe fn WriteClassStm<P0>(pstm: P0, rclsid: *const ::windows::core::GUID) -> ::windows::core::Result<()>
416where
417 P0: ::windows::core::IntoParam<super::IStream>,
418{
419 ::windows::imp::link ! ( "ole32.dll""system" fn WriteClassStm ( pstm : * mut::core::ffi::c_void , rclsid : *const :: windows::core::GUID ) -> :: windows::core::HRESULT );
420 WriteClassStm(pstm.into_param().abi(), rclsid).ok()
421}
422#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
423#[inline]
424pub unsafe fn WriteFmtUserTypeStg<P0, P1>(pstg: P0, cf: u16, lpszusertype: P1) -> ::windows::core::Result<()>
425where
426 P0: ::windows::core::IntoParam<IStorage>,
427 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
428{
429 ::windows::imp::link ! ( "ole32.dll""system" fn WriteFmtUserTypeStg ( pstg : * mut::core::ffi::c_void , cf : u16 , lpszusertype : :: windows::core::PCWSTR ) -> :: windows::core::HRESULT );
430 WriteFmtUserTypeStg(pstg.into_param().abi(), cf, lpszusertype.into_param().abi()).ok()
431}
432#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
433#[repr(transparent)]
434pub struct IDirectWriterLock(::windows::core::IUnknown);
435impl IDirectWriterLock {
436 pub unsafe fn WaitForWriteAccess(&self, dwtimeout: u32) -> ::windows::core::Result<()> {
437 (::windows::core::Interface::vtable(self).WaitForWriteAccess)(::windows::core::Interface::as_raw(self), dwtimeout).ok()
438 }
439 pub unsafe fn ReleaseWriteAccess(&self) -> ::windows::core::Result<()> {
440 (::windows::core::Interface::vtable(self).ReleaseWriteAccess)(::windows::core::Interface::as_raw(self)).ok()
441 }
442 pub unsafe fn HaveWriteAccess(&self) -> ::windows::core::Result<()> {
443 (::windows::core::Interface::vtable(self).HaveWriteAccess)(::windows::core::Interface::as_raw(self)).ok()
444 }
445}
446::windows::imp::interface_hierarchy!(IDirectWriterLock, ::windows::core::IUnknown);
447impl ::core::cmp::PartialEq for IDirectWriterLock {
448 fn eq(&self, other: &Self) -> bool {
449 self.0 == other.0
450 }
451}
452impl ::core::cmp::Eq for IDirectWriterLock {}
453impl ::core::fmt::Debug for IDirectWriterLock {
454 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
455 f.debug_tuple("IDirectWriterLock").field(&self.0).finish()
456 }
457}
458unsafe impl ::windows::core::Interface for IDirectWriterLock {
459 type Vtable = IDirectWriterLock_Vtbl;
460}
461impl ::core::clone::Clone for IDirectWriterLock {
462 fn clone(&self) -> Self {
463 Self(self.0.clone())
464 }
465}
466unsafe impl ::windows::core::ComInterface for IDirectWriterLock {
467 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0e6d4d92_6738_11cf_9608_00aa00680db4);
468}
469#[repr(C)]
470#[doc(hidden)]
471pub struct IDirectWriterLock_Vtbl {
472 pub base__: ::windows::core::IUnknown_Vtbl,
473 pub WaitForWriteAccess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwtimeout: u32) -> ::windows::core::HRESULT,
474 pub ReleaseWriteAccess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
475 pub HaveWriteAccess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
476}
477#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
478#[repr(transparent)]
479pub struct IEnumSTATPROPSETSTG(::windows::core::IUnknown);
480impl IEnumSTATPROPSETSTG {
481 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
482 #[cfg(feature = "Win32_Foundation")]
483 pub unsafe fn Next(&self, rgelt: &mut [STATPROPSETSTG], pceltfetched: ::core::option::Option<*mut u32>) -> ::windows::core::HRESULT {
484 (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched.unwrap_or(::std::ptr::null_mut())))
485 }
486 pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT {
487 (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt)
488 }
489 pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
490 (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok()
491 }
492 pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumSTATPROPSETSTG> {
493 let mut result__ = ::windows::core::zeroed::<IEnumSTATPROPSETSTG>();
494 (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
495 }
496}
497::windows::imp::interface_hierarchy!(IEnumSTATPROPSETSTG, ::windows::core::IUnknown);
498impl ::core::cmp::PartialEq for IEnumSTATPROPSETSTG {
499 fn eq(&self, other: &Self) -> bool {
500 self.0 == other.0
501 }
502}
503impl ::core::cmp::Eq for IEnumSTATPROPSETSTG {}
504impl ::core::fmt::Debug for IEnumSTATPROPSETSTG {
505 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
506 f.debug_tuple("IEnumSTATPROPSETSTG").field(&self.0).finish()
507 }
508}
509unsafe impl ::windows::core::Interface for IEnumSTATPROPSETSTG {
510 type Vtable = IEnumSTATPROPSETSTG_Vtbl;
511}
512impl ::core::clone::Clone for IEnumSTATPROPSETSTG {
513 fn clone(&self) -> Self {
514 Self(self.0.clone())
515 }
516}
517unsafe impl ::windows::core::ComInterface for IEnumSTATPROPSETSTG {
518 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0000013b_0000_0000_c000_000000000046);
519}
520#[repr(C)]
521#[doc(hidden)]
522pub struct IEnumSTATPROPSETSTG_Vtbl {
523 pub base__: ::windows::core::IUnknown_Vtbl,
524 #[cfg(feature = "Win32_Foundation")]
525 pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut STATPROPSETSTG, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
526 #[cfg(not(feature = "Win32_Foundation"))]
527 Next: usize,
528 pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
529 pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
530 pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
531}
532#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
533#[repr(transparent)]
534pub struct IEnumSTATPROPSTG(::windows::core::IUnknown);
535impl IEnumSTATPROPSTG {
536 pub unsafe fn Next(&self, rgelt: &mut [STATPROPSTG], pceltfetched: ::core::option::Option<*mut u32>) -> ::windows::core::HRESULT {
537 (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched.unwrap_or(::std::ptr::null_mut())))
538 }
539 pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT {
540 (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt)
541 }
542 pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
543 (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok()
544 }
545 pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumSTATPROPSTG> {
546 let mut result__ = ::windows::core::zeroed::<IEnumSTATPROPSTG>();
547 (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
548 }
549}
550::windows::imp::interface_hierarchy!(IEnumSTATPROPSTG, ::windows::core::IUnknown);
551impl ::core::cmp::PartialEq for IEnumSTATPROPSTG {
552 fn eq(&self, other: &Self) -> bool {
553 self.0 == other.0
554 }
555}
556impl ::core::cmp::Eq for IEnumSTATPROPSTG {}
557impl ::core::fmt::Debug for IEnumSTATPROPSTG {
558 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
559 f.debug_tuple("IEnumSTATPROPSTG").field(&self.0).finish()
560 }
561}
562unsafe impl ::windows::core::Interface for IEnumSTATPROPSTG {
563 type Vtable = IEnumSTATPROPSTG_Vtbl;
564}
565impl ::core::clone::Clone for IEnumSTATPROPSTG {
566 fn clone(&self) -> Self {
567 Self(self.0.clone())
568 }
569}
570unsafe impl ::windows::core::ComInterface for IEnumSTATPROPSTG {
571 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x00000139_0000_0000_c000_000000000046);
572}
573#[repr(C)]
574#[doc(hidden)]
575pub struct IEnumSTATPROPSTG_Vtbl {
576 pub base__: ::windows::core::IUnknown_Vtbl,
577 pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut STATPROPSTG, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
578 pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
579 pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
580 pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
581}
582#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
583#[repr(transparent)]
584pub struct IEnumSTATSTG(::windows::core::IUnknown);
585impl IEnumSTATSTG {
586 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
587 #[cfg(feature = "Win32_Foundation")]
588 pub unsafe fn Next(&self, rgelt: &mut [super::STATSTG], pceltfetched: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
589 (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched.unwrap_or(::std::ptr::null_mut()))).ok()
590 }
591 pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
592 (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok()
593 }
594 pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
595 (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok()
596 }
597 pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumSTATSTG> {
598 let mut result__ = ::windows::core::zeroed::<IEnumSTATSTG>();
599 (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
600 }
601}
602::windows::imp::interface_hierarchy!(IEnumSTATSTG, ::windows::core::IUnknown);
603impl ::core::cmp::PartialEq for IEnumSTATSTG {
604 fn eq(&self, other: &Self) -> bool {
605 self.0 == other.0
606 }
607}
608impl ::core::cmp::Eq for IEnumSTATSTG {}
609impl ::core::fmt::Debug for IEnumSTATSTG {
610 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
611 f.debug_tuple("IEnumSTATSTG").field(&self.0).finish()
612 }
613}
614unsafe impl ::windows::core::Interface for IEnumSTATSTG {
615 type Vtable = IEnumSTATSTG_Vtbl;
616}
617impl ::core::clone::Clone for IEnumSTATSTG {
618 fn clone(&self) -> Self {
619 Self(self.0.clone())
620 }
621}
622unsafe impl ::windows::core::ComInterface for IEnumSTATSTG {
623 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0000000d_0000_0000_c000_000000000046);
624}
625#[repr(C)]
626#[doc(hidden)]
627pub struct IEnumSTATSTG_Vtbl {
628 pub base__: ::windows::core::IUnknown_Vtbl,
629 #[cfg(feature = "Win32_Foundation")]
630 pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut super::STATSTG, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
631 #[cfg(not(feature = "Win32_Foundation"))]
632 Next: usize,
633 pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
634 pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
635 pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
636}
637#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
638#[repr(transparent)]
639pub struct IFillLockBytes(::windows::core::IUnknown);
640impl IFillLockBytes {
641 pub unsafe fn FillAppend(&self, pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result<u32> {
642 let mut result__ = ::windows::core::zeroed::<u32>();
643 (::windows::core::Interface::vtable(self).FillAppend)(::windows::core::Interface::as_raw(self), pv, cb, &mut result__).from_abi(result__)
644 }
645 pub unsafe fn FillAt(&self, uloffset: u64, pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result<u32> {
646 let mut result__ = ::windows::core::zeroed::<u32>();
647 (::windows::core::Interface::vtable(self).FillAt)(::windows::core::Interface::as_raw(self), uloffset, pv, cb, &mut result__).from_abi(result__)
648 }
649 pub unsafe fn SetFillSize(&self, ulsize: u64) -> ::windows::core::Result<()> {
650 (::windows::core::Interface::vtable(self).SetFillSize)(::windows::core::Interface::as_raw(self), ulsize).ok()
651 }
652 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
653 #[cfg(feature = "Win32_Foundation")]
654 pub unsafe fn Terminate<P0>(&self, bcanceled: P0) -> ::windows::core::Result<()>
655 where
656 P0: ::windows::core::IntoParam<super::super::super::Foundation::BOOL>,
657 {
658 (::windows::core::Interface::vtable(self).Terminate)(::windows::core::Interface::as_raw(self), bcanceled.into_param().abi()).ok()
659 }
660}
661::windows::imp::interface_hierarchy!(IFillLockBytes, ::windows::core::IUnknown);
662impl ::core::cmp::PartialEq for IFillLockBytes {
663 fn eq(&self, other: &Self) -> bool {
664 self.0 == other.0
665 }
666}
667impl ::core::cmp::Eq for IFillLockBytes {}
668impl ::core::fmt::Debug for IFillLockBytes {
669 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
670 f.debug_tuple("IFillLockBytes").field(&self.0).finish()
671 }
672}
673unsafe impl ::windows::core::Interface for IFillLockBytes {
674 type Vtable = IFillLockBytes_Vtbl;
675}
676impl ::core::clone::Clone for IFillLockBytes {
677 fn clone(&self) -> Self {
678 Self(self.0.clone())
679 }
680}
681unsafe impl ::windows::core::ComInterface for IFillLockBytes {
682 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x99caf010_415e_11cf_8814_00aa00b569f5);
683}
684#[repr(C)]
685#[doc(hidden)]
686pub struct IFillLockBytes_Vtbl {
687 pub base__: ::windows::core::IUnknown_Vtbl,
688 pub FillAppend: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: *mut u32) -> ::windows::core::HRESULT,
689 pub FillAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uloffset: u64, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: *mut u32) -> ::windows::core::HRESULT,
690 pub SetFillSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ulsize: u64) -> ::windows::core::HRESULT,
691 #[cfg(feature = "Win32_Foundation")]
692 pub Terminate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bcanceled: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
693 #[cfg(not(feature = "Win32_Foundation"))]
694 Terminate: usize,
695}
696#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
697#[repr(transparent)]
698pub struct ILayoutStorage(::windows::core::IUnknown);
699impl ILayoutStorage {
700 pub unsafe fn LayoutScript(&self, pstoragelayout: &[super::StorageLayout], glfinterleavedflag: u32) -> ::windows::core::Result<()> {
701 (::windows::core::Interface::vtable(self).LayoutScript)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstoragelayout.as_ptr()), pstoragelayout.len() as _, glfinterleavedflag).ok()
702 }
703 pub unsafe fn BeginMonitor(&self) -> ::windows::core::Result<()> {
704 (::windows::core::Interface::vtable(self).BeginMonitor)(::windows::core::Interface::as_raw(self)).ok()
705 }
706 pub unsafe fn EndMonitor(&self) -> ::windows::core::Result<()> {
707 (::windows::core::Interface::vtable(self).EndMonitor)(::windows::core::Interface::as_raw(self)).ok()
708 }
709 pub unsafe fn ReLayoutDocfile<P0>(&self, pwcsnewdfname: P0) -> ::windows::core::Result<()>
710 where
711 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
712 {
713 (::windows::core::Interface::vtable(self).ReLayoutDocfile)(::windows::core::Interface::as_raw(self), pwcsnewdfname.into_param().abi()).ok()
714 }
715 pub unsafe fn ReLayoutDocfileOnILockBytes<P0>(&self, pilockbytes: P0) -> ::windows::core::Result<()>
716 where
717 P0: ::windows::core::IntoParam<ILockBytes>,
718 {
719 (::windows::core::Interface::vtable(self).ReLayoutDocfileOnILockBytes)(::windows::core::Interface::as_raw(self), pilockbytes.into_param().abi()).ok()
720 }
721}
722::windows::imp::interface_hierarchy!(ILayoutStorage, ::windows::core::IUnknown);
723impl ::core::cmp::PartialEq for ILayoutStorage {
724 fn eq(&self, other: &Self) -> bool {
725 self.0 == other.0
726 }
727}
728impl ::core::cmp::Eq for ILayoutStorage {}
729impl ::core::fmt::Debug for ILayoutStorage {
730 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
731 f.debug_tuple("ILayoutStorage").field(&self.0).finish()
732 }
733}
734unsafe impl ::windows::core::Interface for ILayoutStorage {
735 type Vtable = ILayoutStorage_Vtbl;
736}
737impl ::core::clone::Clone for ILayoutStorage {
738 fn clone(&self) -> Self {
739 Self(self.0.clone())
740 }
741}
742unsafe impl ::windows::core::ComInterface for ILayoutStorage {
743 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0e6d4d90_6738_11cf_9608_00aa00680db4);
744}
745#[repr(C)]
746#[doc(hidden)]
747pub struct ILayoutStorage_Vtbl {
748 pub base__: ::windows::core::IUnknown_Vtbl,
749 pub LayoutScript: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstoragelayout: *const super::StorageLayout, nentries: u32, glfinterleavedflag: u32) -> ::windows::core::HRESULT,
750 pub BeginMonitor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
751 pub EndMonitor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
752 pub ReLayoutDocfile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsnewdfname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
753 pub ReLayoutDocfileOnILockBytes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pilockbytes: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
754}
755#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
756#[repr(transparent)]
757pub struct ILockBytes(::windows::core::IUnknown);
758impl ILockBytes {
759 pub unsafe fn ReadAt(&self, uloffset: u64, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
760 (::windows::core::Interface::vtable(self).ReadAt)(::windows::core::Interface::as_raw(self), uloffset, pv, cb, ::core::mem::transmute(pcbread.unwrap_or(::std::ptr::null_mut()))).ok()
761 }
762 pub unsafe fn WriteAt(&self, uloffset: u64, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
763 (::windows::core::Interface::vtable(self).WriteAt)(::windows::core::Interface::as_raw(self), uloffset, pv, cb, ::core::mem::transmute(pcbwritten.unwrap_or(::std::ptr::null_mut()))).ok()
764 }
765 pub unsafe fn Flush(&self) -> ::windows::core::Result<()> {
766 (::windows::core::Interface::vtable(self).Flush)(::windows::core::Interface::as_raw(self)).ok()
767 }
768 pub unsafe fn SetSize(&self, cb: u64) -> ::windows::core::Result<()> {
769 (::windows::core::Interface::vtable(self).SetSize)(::windows::core::Interface::as_raw(self), cb).ok()
770 }
771 pub unsafe fn LockRegion(&self, liboffset: u64, cb: u64, dwlocktype: super::LOCKTYPE) -> ::windows::core::Result<()> {
772 (::windows::core::Interface::vtable(self).LockRegion)(::windows::core::Interface::as_raw(self), liboffset, cb, dwlocktype).ok()
773 }
774 pub unsafe fn UnlockRegion(&self, liboffset: u64, cb: u64, dwlocktype: u32) -> ::windows::core::Result<()> {
775 (::windows::core::Interface::vtable(self).UnlockRegion)(::windows::core::Interface::as_raw(self), liboffset, cb, dwlocktype).ok()
776 }
777 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
778 #[cfg(feature = "Win32_Foundation")]
779 pub unsafe fn Stat(&self, pstatstg: *mut super::STATSTG, grfstatflag: super::STATFLAG) -> ::windows::core::Result<()> {
780 (::windows::core::Interface::vtable(self).Stat)(::windows::core::Interface::as_raw(self), pstatstg, grfstatflag).ok()
781 }
782}
783::windows::imp::interface_hierarchy!(ILockBytes, ::windows::core::IUnknown);
784impl ::core::cmp::PartialEq for ILockBytes {
785 fn eq(&self, other: &Self) -> bool {
786 self.0 == other.0
787 }
788}
789impl ::core::cmp::Eq for ILockBytes {}
790impl ::core::fmt::Debug for ILockBytes {
791 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
792 f.debug_tuple("ILockBytes").field(&self.0).finish()
793 }
794}
795unsafe impl ::windows::core::Interface for ILockBytes {
796 type Vtable = ILockBytes_Vtbl;
797}
798impl ::core::clone::Clone for ILockBytes {
799 fn clone(&self) -> Self {
800 Self(self.0.clone())
801 }
802}
803unsafe impl ::windows::core::ComInterface for ILockBytes {
804 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0000000a_0000_0000_c000_000000000046);
805}
806#[repr(C)]
807#[doc(hidden)]
808pub struct ILockBytes_Vtbl {
809 pub base__: ::windows::core::IUnknown_Vtbl,
810 pub ReadAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uloffset: u64, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: *mut u32) -> ::windows::core::HRESULT,
811 pub WriteAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uloffset: u64, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: *mut u32) -> ::windows::core::HRESULT,
812 pub Flush: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
813 pub SetSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cb: u64) -> ::windows::core::HRESULT,
814 pub LockRegion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, liboffset: u64, cb: u64, dwlocktype: super::LOCKTYPE) -> ::windows::core::HRESULT,
815 pub UnlockRegion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, liboffset: u64, cb: u64, dwlocktype: u32) -> ::windows::core::HRESULT,
816 #[cfg(feature = "Win32_Foundation")]
817 pub Stat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstatstg: *mut super::STATSTG, grfstatflag: super::STATFLAG) -> ::windows::core::HRESULT,
818 #[cfg(not(feature = "Win32_Foundation"))]
819 Stat: usize,
820}
821#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
822#[repr(transparent)]
823pub struct IPersistStorage(::windows::core::IUnknown);
824impl IPersistStorage {
825 pub unsafe fn GetClassID(&self) -> ::windows::core::Result<::windows::core::GUID> {
826 let mut result__ = ::windows::core::zeroed::<::windows::core::GUID>();
827 (::windows::core::Interface::vtable(self).base__.GetClassID)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
828 }
829 pub unsafe fn IsDirty(&self) -> ::windows::core::HRESULT {
830 (::windows::core::Interface::vtable(self).IsDirty)(::windows::core::Interface::as_raw(self))
831 }
832 pub unsafe fn InitNew<P0>(&self, pstg: P0) -> ::windows::core::Result<()>
833 where
834 P0: ::windows::core::IntoParam<IStorage>,
835 {
836 (::windows::core::Interface::vtable(self).InitNew)(::windows::core::Interface::as_raw(self), pstg.into_param().abi()).ok()
837 }
838 pub unsafe fn Load<P0>(&self, pstg: P0) -> ::windows::core::Result<()>
839 where
840 P0: ::windows::core::IntoParam<IStorage>,
841 {
842 (::windows::core::Interface::vtable(self).Load)(::windows::core::Interface::as_raw(self), pstg.into_param().abi()).ok()
843 }
844 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
845 #[cfg(feature = "Win32_Foundation")]
846 pub unsafe fn Save<P0, P1>(&self, pstgsave: P0, fsameasload: P1) -> ::windows::core::Result<()>
847 where
848 P0: ::windows::core::IntoParam<IStorage>,
849 P1: ::windows::core::IntoParam<super::super::super::Foundation::BOOL>,
850 {
851 (::windows::core::Interface::vtable(self).Save)(::windows::core::Interface::as_raw(self), pstgsave.into_param().abi(), fsameasload.into_param().abi()).ok()
852 }
853 pub unsafe fn SaveCompleted<P0>(&self, pstgnew: P0) -> ::windows::core::Result<()>
854 where
855 P0: ::windows::core::IntoParam<IStorage>,
856 {
857 (::windows::core::Interface::vtable(self).SaveCompleted)(::windows::core::Interface::as_raw(self), pstgnew.into_param().abi()).ok()
858 }
859 pub unsafe fn HandsOffStorage(&self) -> ::windows::core::Result<()> {
860 (::windows::core::Interface::vtable(self).HandsOffStorage)(::windows::core::Interface::as_raw(self)).ok()
861 }
862}
863::windows::imp::interface_hierarchy!(IPersistStorage, ::windows::core::IUnknown, super::IPersist);
864impl ::core::cmp::PartialEq for IPersistStorage {
865 fn eq(&self, other: &Self) -> bool {
866 self.0 == other.0
867 }
868}
869impl ::core::cmp::Eq for IPersistStorage {}
870impl ::core::fmt::Debug for IPersistStorage {
871 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
872 f.debug_tuple("IPersistStorage").field(&self.0).finish()
873 }
874}
875unsafe impl ::windows::core::Interface for IPersistStorage {
876 type Vtable = IPersistStorage_Vtbl;
877}
878impl ::core::clone::Clone for IPersistStorage {
879 fn clone(&self) -> Self {
880 Self(self.0.clone())
881 }
882}
883unsafe impl ::windows::core::ComInterface for IPersistStorage {
884 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0000010a_0000_0000_c000_000000000046);
885}
886#[repr(C)]
887#[doc(hidden)]
888pub struct IPersistStorage_Vtbl {
889 pub base__: super::IPersist_Vtbl,
890 pub IsDirty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
891 pub InitNew: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstg: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
892 pub Load: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstg: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
893 #[cfg(feature = "Win32_Foundation")]
894 pub Save: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstgsave: *mut ::core::ffi::c_void, fsameasload: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
895 #[cfg(not(feature = "Win32_Foundation"))]
896 Save: usize,
897 pub SaveCompleted: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstgnew: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
898 pub HandsOffStorage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
899}
900#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
901#[repr(transparent)]
902pub struct IPropertyBag(::windows::core::IUnknown);
903impl IPropertyBag {
904 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"]
905 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
906 pub unsafe fn Read<P0, P1>(&self, pszpropname: P0, pvar: *mut super::VARIANT, perrorlog: P1) -> ::windows::core::Result<()>
907 where
908 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
909 P1: ::windows::core::IntoParam<super::IErrorLog>,
910 {
911 (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), pszpropname.into_param().abi(), pvar, perrorlog.into_param().abi()).ok()
912 }
913 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"]
914 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
915 pub unsafe fn Write<P0>(&self, pszpropname: P0, pvar: *const super::VARIANT) -> ::windows::core::Result<()>
916 where
917 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
918 {
919 (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), pszpropname.into_param().abi(), pvar).ok()
920 }
921}
922::windows::imp::interface_hierarchy!(IPropertyBag, ::windows::core::IUnknown);
923impl ::core::cmp::PartialEq for IPropertyBag {
924 fn eq(&self, other: &Self) -> bool {
925 self.0 == other.0
926 }
927}
928impl ::core::cmp::Eq for IPropertyBag {}
929impl ::core::fmt::Debug for IPropertyBag {
930 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
931 f.debug_tuple("IPropertyBag").field(&self.0).finish()
932 }
933}
934unsafe impl ::windows::core::Interface for IPropertyBag {
935 type Vtable = IPropertyBag_Vtbl;
936}
937impl ::core::clone::Clone for IPropertyBag {
938 fn clone(&self) -> Self {
939 Self(self.0.clone())
940 }
941}
942unsafe impl ::windows::core::ComInterface for IPropertyBag {
943 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x55272a00_42cb_11ce_8135_00aa004bb851);
944}
945#[repr(C)]
946#[doc(hidden)]
947pub struct IPropertyBag_Vtbl {
948 pub base__: ::windows::core::IUnknown_Vtbl,
949 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
950 pub Read: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszpropname: ::windows::core::PCWSTR, pvar: *mut super::VARIANT, perrorlog: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
951 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Ole")))]
952 Read: usize,
953 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
954 pub Write: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszpropname: ::windows::core::PCWSTR, pvar: *const super::VARIANT) -> ::windows::core::HRESULT,
955 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Ole")))]
956 Write: usize,
957}
958#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
959#[repr(transparent)]
960pub struct IPropertyBag2(::windows::core::IUnknown);
961impl IPropertyBag2 {
962 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"]
963 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
964 pub unsafe fn Read<P0>(&self, cproperties: u32, ppropbag: *const PROPBAG2, perrlog: P0, pvarvalue: *mut super::VARIANT, phrerror: *mut ::windows::core::HRESULT) -> ::windows::core::Result<()>
965 where
966 P0: ::windows::core::IntoParam<super::IErrorLog>,
967 {
968 (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), cproperties, ppropbag, perrlog.into_param().abi(), pvarvalue, phrerror).ok()
969 }
970 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"]
971 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
972 pub unsafe fn Write(&self, cproperties: u32, ppropbag: *const PROPBAG2, pvarvalue: *const super::VARIANT) -> ::windows::core::Result<()> {
973 (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), cproperties, ppropbag, pvarvalue).ok()
974 }
975 pub unsafe fn CountProperties(&self) -> ::windows::core::Result<u32> {
976 let mut result__ = ::windows::core::zeroed::<u32>();
977 (::windows::core::Interface::vtable(self).CountProperties)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
978 }
979 pub unsafe fn GetPropertyInfo(&self, iproperty: u32, ppropbag: &mut [PROPBAG2], pcproperties: *mut u32) -> ::windows::core::Result<()> {
980 (::windows::core::Interface::vtable(self).GetPropertyInfo)(::windows::core::Interface::as_raw(self), iproperty, ppropbag.len() as _, ::core::mem::transmute(ppropbag.as_ptr()), pcproperties).ok()
981 }
982 pub unsafe fn LoadObject<P0, P1, P2>(&self, pstrname: P0, dwhint: u32, punkobject: P1, perrlog: P2) -> ::windows::core::Result<()>
983 where
984 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
985 P1: ::windows::core::IntoParam<::windows::core::IUnknown>,
986 P2: ::windows::core::IntoParam<super::IErrorLog>,
987 {
988 (::windows::core::Interface::vtable(self).LoadObject)(::windows::core::Interface::as_raw(self), pstrname.into_param().abi(), dwhint, punkobject.into_param().abi(), perrlog.into_param().abi()).ok()
989 }
990}
991::windows::imp::interface_hierarchy!(IPropertyBag2, ::windows::core::IUnknown);
992impl ::core::cmp::PartialEq for IPropertyBag2 {
993 fn eq(&self, other: &Self) -> bool {
994 self.0 == other.0
995 }
996}
997impl ::core::cmp::Eq for IPropertyBag2 {}
998impl ::core::fmt::Debug for IPropertyBag2 {
999 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1000 f.debug_tuple("IPropertyBag2").field(&self.0).finish()
1001 }
1002}
1003unsafe impl ::windows::core::Interface for IPropertyBag2 {
1004 type Vtable = IPropertyBag2_Vtbl;
1005}
1006impl ::core::clone::Clone for IPropertyBag2 {
1007 fn clone(&self) -> Self {
1008 Self(self.0.clone())
1009 }
1010}
1011unsafe impl ::windows::core::ComInterface for IPropertyBag2 {
1012 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x22f55882_280b_11d0_a8a9_00a0c90c2004);
1013}
1014#[repr(C)]
1015#[doc(hidden)]
1016pub struct IPropertyBag2_Vtbl {
1017 pub base__: ::windows::core::IUnknown_Vtbl,
1018 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
1019 pub Read: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cproperties: u32, ppropbag: *const PROPBAG2, perrlog: *mut ::core::ffi::c_void, pvarvalue: *mut super::VARIANT, phrerror: *mut ::windows::core::HRESULT) -> ::windows::core::HRESULT,
1020 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Ole")))]
1021 Read: usize,
1022 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))]
1023 pub Write: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cproperties: u32, ppropbag: *const PROPBAG2, pvarvalue: *const super::VARIANT) -> ::windows::core::HRESULT,
1024 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Ole")))]
1025 Write: usize,
1026 pub CountProperties: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcproperties: *mut u32) -> ::windows::core::HRESULT,
1027 pub GetPropertyInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, iproperty: u32, cproperties: u32, ppropbag: *mut PROPBAG2, pcproperties: *mut u32) -> ::windows::core::HRESULT,
1028 pub LoadObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrname: ::windows::core::PCWSTR, dwhint: u32, punkobject: *mut ::core::ffi::c_void, perrlog: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1029}
1030#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1031#[repr(transparent)]
1032pub struct IPropertySetStorage(::windows::core::IUnknown);
1033impl IPropertySetStorage {
1034 pub unsafe fn Create(&self, rfmtid: *const ::windows::core::GUID, pclsid: *const ::windows::core::GUID, grfflags: u32, grfmode: u32) -> ::windows::core::Result<IPropertyStorage> {
1035 let mut result__ = ::windows::core::zeroed::<IPropertyStorage>();
1036 (::windows::core::Interface::vtable(self).Create)(::windows::core::Interface::as_raw(self), rfmtid, pclsid, grfflags, grfmode, &mut result__).from_abi(result__)
1037 }
1038 pub unsafe fn Open(&self, rfmtid: *const ::windows::core::GUID, grfmode: u32) -> ::windows::core::Result<IPropertyStorage> {
1039 let mut result__ = ::windows::core::zeroed::<IPropertyStorage>();
1040 (::windows::core::Interface::vtable(self).Open)(::windows::core::Interface::as_raw(self), rfmtid, grfmode, &mut result__).from_abi(result__)
1041 }
1042 pub unsafe fn Delete(&self, rfmtid: *const ::windows::core::GUID) -> ::windows::core::Result<()> {
1043 (::windows::core::Interface::vtable(self).Delete)(::windows::core::Interface::as_raw(self), rfmtid).ok()
1044 }
1045 pub unsafe fn Enum(&self) -> ::windows::core::Result<IEnumSTATPROPSETSTG> {
1046 let mut result__ = ::windows::core::zeroed::<IEnumSTATPROPSETSTG>();
1047 (::windows::core::Interface::vtable(self).Enum)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
1048 }
1049}
1050::windows::imp::interface_hierarchy!(IPropertySetStorage, ::windows::core::IUnknown);
1051impl ::core::cmp::PartialEq for IPropertySetStorage {
1052 fn eq(&self, other: &Self) -> bool {
1053 self.0 == other.0
1054 }
1055}
1056impl ::core::cmp::Eq for IPropertySetStorage {}
1057impl ::core::fmt::Debug for IPropertySetStorage {
1058 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1059 f.debug_tuple("IPropertySetStorage").field(&self.0).finish()
1060 }
1061}
1062unsafe impl ::windows::core::Interface for IPropertySetStorage {
1063 type Vtable = IPropertySetStorage_Vtbl;
1064}
1065impl ::core::clone::Clone for IPropertySetStorage {
1066 fn clone(&self) -> Self {
1067 Self(self.0.clone())
1068 }
1069}
1070unsafe impl ::windows::core::ComInterface for IPropertySetStorage {
1071 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0000013a_0000_0000_c000_000000000046);
1072}
1073#[repr(C)]
1074#[doc(hidden)]
1075pub struct IPropertySetStorage_Vtbl {
1076 pub base__: ::windows::core::IUnknown_Vtbl,
1077 pub Create: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rfmtid: *const ::windows::core::GUID, pclsid: *const ::windows::core::GUID, grfflags: u32, grfmode: u32, ppprstg: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1078 pub Open: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rfmtid: *const ::windows::core::GUID, grfmode: u32, ppprstg: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1079 pub Delete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rfmtid: *const ::windows::core::GUID) -> ::windows::core::HRESULT,
1080 pub Enum: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1081}
1082#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1083#[repr(transparent)]
1084pub struct IPropertyStorage(::windows::core::IUnknown);
1085impl IPropertyStorage {
1086 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1087 #[cfg(feature = "Win32_Foundation")]
1088 pub unsafe fn ReadMultiple(&self, cpspec: u32, rgpspec: *const PROPSPEC, rgpropvar: *mut PROPVARIANT) -> ::windows::core::Result<()> {
1089 (::windows::core::Interface::vtable(self).ReadMultiple)(::windows::core::Interface::as_raw(self), cpspec, rgpspec, rgpropvar).ok()
1090 }
1091 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1092 #[cfg(feature = "Win32_Foundation")]
1093 pub unsafe fn WriteMultiple(&self, cpspec: u32, rgpspec: *const PROPSPEC, rgpropvar: *const PROPVARIANT, propidnamefirst: u32) -> ::windows::core::Result<()> {
1094 (::windows::core::Interface::vtable(self).WriteMultiple)(::windows::core::Interface::as_raw(self), cpspec, rgpspec, rgpropvar, propidnamefirst).ok()
1095 }
1096 pub unsafe fn DeleteMultiple(&self, rgpspec: &[PROPSPEC]) -> ::windows::core::Result<()> {
1097 (::windows::core::Interface::vtable(self).DeleteMultiple)(::windows::core::Interface::as_raw(self), rgpspec.len() as _, ::core::mem::transmute(rgpspec.as_ptr())).ok()
1098 }
1099 pub unsafe fn ReadPropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *mut ::windows::core::PWSTR) -> ::windows::core::Result<()> {
1100 (::windows::core::Interface::vtable(self).ReadPropertyNames)(::windows::core::Interface::as_raw(self), cpropid, rgpropid, rglpwstrname).ok()
1101 }
1102 pub unsafe fn WritePropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *const ::windows::core::PCWSTR) -> ::windows::core::Result<()> {
1103 (::windows::core::Interface::vtable(self).WritePropertyNames)(::windows::core::Interface::as_raw(self), cpropid, rgpropid, rglpwstrname).ok()
1104 }
1105 pub unsafe fn DeletePropertyNames(&self, rgpropid: &[u32]) -> ::windows::core::Result<()> {
1106 (::windows::core::Interface::vtable(self).DeletePropertyNames)(::windows::core::Interface::as_raw(self), rgpropid.len() as _, ::core::mem::transmute(rgpropid.as_ptr())).ok()
1107 }
1108 pub unsafe fn Commit(&self, grfcommitflags: u32) -> ::windows::core::Result<()> {
1109 (::windows::core::Interface::vtable(self).Commit)(::windows::core::Interface::as_raw(self), grfcommitflags).ok()
1110 }
1111 pub unsafe fn Revert(&self) -> ::windows::core::Result<()> {
1112 (::windows::core::Interface::vtable(self).Revert)(::windows::core::Interface::as_raw(self)).ok()
1113 }
1114 pub unsafe fn Enum(&self) -> ::windows::core::Result<IEnumSTATPROPSTG> {
1115 let mut result__ = ::windows::core::zeroed::<IEnumSTATPROPSTG>();
1116 (::windows::core::Interface::vtable(self).Enum)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
1117 }
1118 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1119 #[cfg(feature = "Win32_Foundation")]
1120 pub unsafe fn SetTimes(&self, pctime: *const super::super::super::Foundation::FILETIME, patime: *const super::super::super::Foundation::FILETIME, pmtime: *const super::super::super::Foundation::FILETIME) -> ::windows::core::Result<()> {
1121 (::windows::core::Interface::vtable(self).SetTimes)(::windows::core::Interface::as_raw(self), pctime, patime, pmtime).ok()
1122 }
1123 pub unsafe fn SetClass(&self, clsid: *const ::windows::core::GUID) -> ::windows::core::Result<()> {
1124 (::windows::core::Interface::vtable(self).SetClass)(::windows::core::Interface::as_raw(self), clsid).ok()
1125 }
1126 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1127 #[cfg(feature = "Win32_Foundation")]
1128 pub unsafe fn Stat(&self, pstatpsstg: *mut STATPROPSETSTG) -> ::windows::core::Result<()> {
1129 (::windows::core::Interface::vtable(self).Stat)(::windows::core::Interface::as_raw(self), pstatpsstg).ok()
1130 }
1131}
1132::windows::imp::interface_hierarchy!(IPropertyStorage, ::windows::core::IUnknown);
1133impl ::core::cmp::PartialEq for IPropertyStorage {
1134 fn eq(&self, other: &Self) -> bool {
1135 self.0 == other.0
1136 }
1137}
1138impl ::core::cmp::Eq for IPropertyStorage {}
1139impl ::core::fmt::Debug for IPropertyStorage {
1140 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1141 f.debug_tuple("IPropertyStorage").field(&self.0).finish()
1142 }
1143}
1144unsafe impl ::windows::core::Interface for IPropertyStorage {
1145 type Vtable = IPropertyStorage_Vtbl;
1146}
1147impl ::core::clone::Clone for IPropertyStorage {
1148 fn clone(&self) -> Self {
1149 Self(self.0.clone())
1150 }
1151}
1152unsafe impl ::windows::core::ComInterface for IPropertyStorage {
1153 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x00000138_0000_0000_c000_000000000046);
1154}
1155#[repr(C)]
1156#[doc(hidden)]
1157pub struct IPropertyStorage_Vtbl {
1158 pub base__: ::windows::core::IUnknown_Vtbl,
1159 #[cfg(feature = "Win32_Foundation")]
1160 pub ReadMultiple: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cpspec: u32, rgpspec: *const PROPSPEC, rgpropvar: *mut PROPVARIANT) -> ::windows::core::HRESULT,
1161 #[cfg(not(feature = "Win32_Foundation"))]
1162 ReadMultiple: usize,
1163 #[cfg(feature = "Win32_Foundation")]
1164 pub WriteMultiple: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cpspec: u32, rgpspec: *const PROPSPEC, rgpropvar: *const PROPVARIANT, propidnamefirst: u32) -> ::windows::core::HRESULT,
1165 #[cfg(not(feature = "Win32_Foundation"))]
1166 WriteMultiple: usize,
1167 pub DeleteMultiple: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cpspec: u32, rgpspec: *const PROPSPEC) -> ::windows::core::HRESULT,
1168 pub ReadPropertyNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cpropid: u32, rgpropid: *const u32, rglpwstrname: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT,
1169 pub WritePropertyNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cpropid: u32, rgpropid: *const u32, rglpwstrname: *const ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
1170 pub DeletePropertyNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cpropid: u32, rgpropid: *const u32) -> ::windows::core::HRESULT,
1171 pub Commit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, grfcommitflags: u32) -> ::windows::core::HRESULT,
1172 pub Revert: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1173 pub Enum: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1174 #[cfg(feature = "Win32_Foundation")]
1175 pub SetTimes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pctime: *const super::super::super::Foundation::FILETIME, patime: *const super::super::super::Foundation::FILETIME, pmtime: *const super::super::super::Foundation::FILETIME) -> ::windows::core::HRESULT,
1176 #[cfg(not(feature = "Win32_Foundation"))]
1177 SetTimes: usize,
1178 pub SetClass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, clsid: *const ::windows::core::GUID) -> ::windows::core::HRESULT,
1179 #[cfg(feature = "Win32_Foundation")]
1180 pub Stat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstatpsstg: *mut STATPROPSETSTG) -> ::windows::core::HRESULT,
1181 #[cfg(not(feature = "Win32_Foundation"))]
1182 Stat: usize,
1183}
1184#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1185#[repr(transparent)]
1186pub struct IRootStorage(::windows::core::IUnknown);
1187impl IRootStorage {
1188 pub unsafe fn SwitchToFile<P0>(&self, pszfile: P0) -> ::windows::core::Result<()>
1189 where
1190 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1191 {
1192 (::windows::core::Interface::vtable(self).SwitchToFile)(::windows::core::Interface::as_raw(self), pszfile.into_param().abi()).ok()
1193 }
1194}
1195::windows::imp::interface_hierarchy!(IRootStorage, ::windows::core::IUnknown);
1196impl ::core::cmp::PartialEq for IRootStorage {
1197 fn eq(&self, other: &Self) -> bool {
1198 self.0 == other.0
1199 }
1200}
1201impl ::core::cmp::Eq for IRootStorage {}
1202impl ::core::fmt::Debug for IRootStorage {
1203 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1204 f.debug_tuple("IRootStorage").field(&self.0).finish()
1205 }
1206}
1207unsafe impl ::windows::core::Interface for IRootStorage {
1208 type Vtable = IRootStorage_Vtbl;
1209}
1210impl ::core::clone::Clone for IRootStorage {
1211 fn clone(&self) -> Self {
1212 Self(self.0.clone())
1213 }
1214}
1215unsafe impl ::windows::core::ComInterface for IRootStorage {
1216 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x00000012_0000_0000_c000_000000000046);
1217}
1218#[repr(C)]
1219#[doc(hidden)]
1220pub struct IRootStorage_Vtbl {
1221 pub base__: ::windows::core::IUnknown_Vtbl,
1222 pub SwitchToFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszfile: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
1223}
1224#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1225#[repr(transparent)]
1226pub struct IStorage(::windows::core::IUnknown);
1227impl IStorage {
1228 pub unsafe fn CreateStream<P0>(&self, pwcsname: P0, grfmode: super::STGM, reserved1: u32, reserved2: u32) -> ::windows::core::Result<super::IStream>
1229 where
1230 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1231 {
1232 let mut result__ = ::windows::core::zeroed::<super::IStream>();
1233 (::windows::core::Interface::vtable(self).CreateStream)(::windows::core::Interface::as_raw(self), pwcsname.into_param().abi(), grfmode, reserved1, reserved2, &mut result__).from_abi(result__)
1234 }
1235 pub unsafe fn OpenStream<P0>(&self, pwcsname: P0, reserved1: ::core::option::Option<*const ::core::ffi::c_void>, grfmode: super::STGM, reserved2: u32) -> ::windows::core::Result<super::IStream>
1236 where
1237 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1238 {
1239 let mut result__ = ::windows::core::zeroed::<super::IStream>();
1240 (::windows::core::Interface::vtable(self).OpenStream)(::windows::core::Interface::as_raw(self), pwcsname.into_param().abi(), ::core::mem::transmute(reserved1.unwrap_or(::std::ptr::null())), grfmode, reserved2, &mut result__).from_abi(result__)
1241 }
1242 pub unsafe fn CreateStorage<P0>(&self, pwcsname: P0, grfmode: super::STGM, reserved1: u32, reserved2: u32) -> ::windows::core::Result<IStorage>
1243 where
1244 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1245 {
1246 let mut result__ = ::windows::core::zeroed::<IStorage>();
1247 (::windows::core::Interface::vtable(self).CreateStorage)(::windows::core::Interface::as_raw(self), pwcsname.into_param().abi(), grfmode, reserved1, reserved2, &mut result__).from_abi(result__)
1248 }
1249 pub unsafe fn OpenStorage<P0, P1>(&self, pwcsname: P0, pstgpriority: P1, grfmode: super::STGM, snbexclude: *const *const u16, reserved: u32) -> ::windows::core::Result<IStorage>
1250 where
1251 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1252 P1: ::windows::core::IntoParam<IStorage>,
1253 {
1254 let mut result__ = ::windows::core::zeroed::<IStorage>();
1255 (::windows::core::Interface::vtable(self).OpenStorage)(::windows::core::Interface::as_raw(self), pwcsname.into_param().abi(), pstgpriority.into_param().abi(), grfmode, snbexclude, reserved, &mut result__).from_abi(result__)
1256 }
1257 pub unsafe fn CopyTo<P0>(&self, rgiidexclude: ::core::option::Option<&[::windows::core::GUID]>, snbexclude: ::core::option::Option<*const *const u16>, pstgdest: P0) -> ::windows::core::Result<()>
1258 where
1259 P0: ::windows::core::IntoParam<IStorage>,
1260 {
1261 (::windows::core::Interface::vtable(self).CopyTo)(::windows::core::Interface::as_raw(self), rgiidexclude.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgiidexclude.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(snbexclude.unwrap_or(::std::ptr::null())), pstgdest.into_param().abi()).ok()
1262 }
1263 pub unsafe fn MoveElementTo<P0, P1, P2>(&self, pwcsname: P0, pstgdest: P1, pwcsnewname: P2, grfflags: STGMOVE) -> ::windows::core::Result<()>
1264 where
1265 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1266 P1: ::windows::core::IntoParam<IStorage>,
1267 P2: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1268 {
1269 (::windows::core::Interface::vtable(self).MoveElementTo)(::windows::core::Interface::as_raw(self), pwcsname.into_param().abi(), pstgdest.into_param().abi(), pwcsnewname.into_param().abi(), grfflags).ok()
1270 }
1271 pub unsafe fn Commit(&self, grfcommitflags: super::STGC) -> ::windows::core::Result<()> {
1272 (::windows::core::Interface::vtable(self).Commit)(::windows::core::Interface::as_raw(self), grfcommitflags).ok()
1273 }
1274 pub unsafe fn Revert(&self) -> ::windows::core::Result<()> {
1275 (::windows::core::Interface::vtable(self).Revert)(::windows::core::Interface::as_raw(self)).ok()
1276 }
1277 pub unsafe fn EnumElements(&self, reserved1: u32, reserved2: ::core::option::Option<*const ::core::ffi::c_void>, reserved3: u32) -> ::windows::core::Result<IEnumSTATSTG> {
1278 let mut result__ = ::windows::core::zeroed::<IEnumSTATSTG>();
1279 (::windows::core::Interface::vtable(self).EnumElements)(::windows::core::Interface::as_raw(self), reserved1, ::core::mem::transmute(reserved2.unwrap_or(::std::ptr::null())), reserved3, &mut result__).from_abi(result__)
1280 }
1281 pub unsafe fn DestroyElement<P0>(&self, pwcsname: P0) -> ::windows::core::Result<()>
1282 where
1283 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1284 {
1285 (::windows::core::Interface::vtable(self).DestroyElement)(::windows::core::Interface::as_raw(self), pwcsname.into_param().abi()).ok()
1286 }
1287 pub unsafe fn RenameElement<P0, P1>(&self, pwcsoldname: P0, pwcsnewname: P1) -> ::windows::core::Result<()>
1288 where
1289 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1290 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1291 {
1292 (::windows::core::Interface::vtable(self).RenameElement)(::windows::core::Interface::as_raw(self), pwcsoldname.into_param().abi(), pwcsnewname.into_param().abi()).ok()
1293 }
1294 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1295 #[cfg(feature = "Win32_Foundation")]
1296 pub unsafe fn SetElementTimes<P0>(&self, pwcsname: P0, pctime: *const super::super::super::Foundation::FILETIME, patime: *const super::super::super::Foundation::FILETIME, pmtime: *const super::super::super::Foundation::FILETIME) -> ::windows::core::Result<()>
1297 where
1298 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1299 {
1300 (::windows::core::Interface::vtable(self).SetElementTimes)(::windows::core::Interface::as_raw(self), pwcsname.into_param().abi(), pctime, patime, pmtime).ok()
1301 }
1302 pub unsafe fn SetClass(&self, clsid: *const ::windows::core::GUID) -> ::windows::core::Result<()> {
1303 (::windows::core::Interface::vtable(self).SetClass)(::windows::core::Interface::as_raw(self), clsid).ok()
1304 }
1305 pub unsafe fn SetStateBits(&self, grfstatebits: u32, grfmask: u32) -> ::windows::core::Result<()> {
1306 (::windows::core::Interface::vtable(self).SetStateBits)(::windows::core::Interface::as_raw(self), grfstatebits, grfmask).ok()
1307 }
1308 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1309 #[cfg(feature = "Win32_Foundation")]
1310 pub unsafe fn Stat(&self, pstatstg: *mut super::STATSTG, grfstatflag: super::STATFLAG) -> ::windows::core::Result<()> {
1311 (::windows::core::Interface::vtable(self).Stat)(::windows::core::Interface::as_raw(self), pstatstg, grfstatflag).ok()
1312 }
1313}
1314::windows::imp::interface_hierarchy!(IStorage, ::windows::core::IUnknown);
1315impl ::core::cmp::PartialEq for IStorage {
1316 fn eq(&self, other: &Self) -> bool {
1317 self.0 == other.0
1318 }
1319}
1320impl ::core::cmp::Eq for IStorage {}
1321impl ::core::fmt::Debug for IStorage {
1322 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1323 f.debug_tuple("IStorage").field(&self.0).finish()
1324 }
1325}
1326unsafe impl ::windows::core::Interface for IStorage {
1327 type Vtable = IStorage_Vtbl;
1328}
1329impl ::core::clone::Clone for IStorage {
1330 fn clone(&self) -> Self {
1331 Self(self.0.clone())
1332 }
1333}
1334unsafe impl ::windows::core::ComInterface for IStorage {
1335 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0000000b_0000_0000_c000_000000000046);
1336}
1337#[repr(C)]
1338#[doc(hidden)]
1339pub struct IStorage_Vtbl {
1340 pub base__: ::windows::core::IUnknown_Vtbl,
1341 pub CreateStream: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsname: ::windows::core::PCWSTR, grfmode: super::STGM, reserved1: u32, reserved2: u32, ppstm: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1342 pub OpenStream: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsname: ::windows::core::PCWSTR, reserved1: *const ::core::ffi::c_void, grfmode: super::STGM, reserved2: u32, ppstm: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1343 pub CreateStorage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsname: ::windows::core::PCWSTR, grfmode: super::STGM, reserved1: u32, reserved2: u32, ppstg: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1344 pub OpenStorage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsname: ::windows::core::PCWSTR, pstgpriority: *mut ::core::ffi::c_void, grfmode: super::STGM, snbexclude: *const *const u16, reserved: u32, ppstg: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1345 pub CopyTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ciidexclude: u32, rgiidexclude: *const ::windows::core::GUID, snbexclude: *const *const u16, pstgdest: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1346 pub MoveElementTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsname: ::windows::core::PCWSTR, pstgdest: *mut ::core::ffi::c_void, pwcsnewname: ::windows::core::PCWSTR, grfflags: STGMOVE) -> ::windows::core::HRESULT,
1347 pub Commit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, grfcommitflags: super::STGC) -> ::windows::core::HRESULT,
1348 pub Revert: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1349 pub EnumElements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, reserved1: u32, reserved2: *const ::core::ffi::c_void, reserved3: u32, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1350 pub DestroyElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
1351 pub RenameElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsoldname: ::windows::core::PCWSTR, pwcsnewname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
1352 #[cfg(feature = "Win32_Foundation")]
1353 pub SetElementTimes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwcsname: ::windows::core::PCWSTR, pctime: *const super::super::super::Foundation::FILETIME, patime: *const super::super::super::Foundation::FILETIME, pmtime: *const super::super::super::Foundation::FILETIME) -> ::windows::core::HRESULT,
1354 #[cfg(not(feature = "Win32_Foundation"))]
1355 SetElementTimes: usize,
1356 pub SetClass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, clsid: *const ::windows::core::GUID) -> ::windows::core::HRESULT,
1357 pub SetStateBits: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, grfstatebits: u32, grfmask: u32) -> ::windows::core::HRESULT,
1358 #[cfg(feature = "Win32_Foundation")]
1359 pub Stat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstatstg: *mut super::STATSTG, grfstatflag: super::STATFLAG) -> ::windows::core::HRESULT,
1360 #[cfg(not(feature = "Win32_Foundation"))]
1361 Stat: usize,
1362}
1363#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1364pub const CCH_MAX_PROPSTG_NAME: u32 = 31u32;
1365#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1366pub const CWCSTORAGENAME: u32 = 32u32;
1367#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1368pub const PIDDI_THUMBNAIL: i32 = 2i32;
1369#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1370pub const PIDDSI_BYTECOUNT: u32 = 4u32;
1371#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1372pub const PIDDSI_CATEGORY: u32 = 2u32;
1373#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1374pub const PIDDSI_COMPANY: u32 = 15u32;
1375#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1376pub const PIDDSI_DOCPARTS: u32 = 13u32;
1377#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1378pub const PIDDSI_HEADINGPAIR: u32 = 12u32;
1379#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1380pub const PIDDSI_HIDDENCOUNT: u32 = 9u32;
1381#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1382pub const PIDDSI_LINECOUNT: u32 = 5u32;
1383#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1384pub const PIDDSI_LINKSDIRTY: u32 = 16u32;
1385#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1386pub const PIDDSI_MANAGER: u32 = 14u32;
1387#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1388pub const PIDDSI_MMCLIPCOUNT: u32 = 10u32;
1389#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1390pub const PIDDSI_NOTECOUNT: u32 = 8u32;
1391#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1392pub const PIDDSI_PARCOUNT: u32 = 6u32;
1393#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1394pub const PIDDSI_PRESFORMAT: u32 = 3u32;
1395#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1396pub const PIDDSI_SCALE: u32 = 11u32;
1397#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1398pub const PIDDSI_SLIDECOUNT: u32 = 7u32;
1399#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1400pub const PIDMSI_COPYRIGHT: i32 = 11i32;
1401#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1402pub const PIDMSI_EDITOR: i32 = 2i32;
1403#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1404pub const PIDMSI_OWNER: i32 = 8i32;
1405#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1406pub const PIDMSI_PRODUCTION: i32 = 10i32;
1407#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1408pub const PIDMSI_PROJECT: i32 = 6i32;
1409#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1410pub const PIDMSI_RATING: i32 = 9i32;
1411#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1412pub const PIDMSI_SEQUENCE_NO: i32 = 5i32;
1413#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1414pub const PIDMSI_SOURCE: i32 = 4i32;
1415#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1416pub const PIDMSI_STATUS: i32 = 7i32;
1417#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1418pub const PIDMSI_SUPPLIER: i32 = 3i32;
1419#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1420pub const PIDSI_APPNAME: i32 = 18i32;
1421#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1422pub const PIDSI_AUTHOR: i32 = 4i32;
1423#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1424pub const PIDSI_CHARCOUNT: i32 = 16i32;
1425#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1426pub const PIDSI_COMMENTS: i32 = 6i32;
1427#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1428pub const PIDSI_CREATE_DTM: i32 = 12i32;
1429#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1430pub const PIDSI_DOC_SECURITY: i32 = 19i32;
1431#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1432pub const PIDSI_EDITTIME: i32 = 10i32;
1433#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1434pub const PIDSI_KEYWORDS: i32 = 5i32;
1435#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1436pub const PIDSI_LASTAUTHOR: i32 = 8i32;
1437#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1438pub const PIDSI_LASTPRINTED: i32 = 11i32;
1439#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1440pub const PIDSI_LASTSAVE_DTM: i32 = 13i32;
1441#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1442pub const PIDSI_PAGECOUNT: i32 = 14i32;
1443#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1444pub const PIDSI_REVNUMBER: i32 = 9i32;
1445#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1446pub const PIDSI_SUBJECT: i32 = 3i32;
1447#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1448pub const PIDSI_TEMPLATE: i32 = 7i32;
1449#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1450pub const PIDSI_THUMBNAIL: i32 = 17i32;
1451#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1452pub const PIDSI_TITLE: i32 = 2i32;
1453#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1454pub const PIDSI_WORDCOUNT: i32 = 15i32;
1455#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1456pub const PID_BEHAVIOR: u32 = 2147483651u32;
1457#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1458pub const PID_CODEPAGE: u32 = 1u32;
1459#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1460pub const PID_DICTIONARY: u32 = 0u32;
1461#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1462pub const PID_FIRST_NAME_DEFAULT: u32 = 4095u32;
1463#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1464pub const PID_FIRST_USABLE: u32 = 2u32;
1465#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1466pub const PID_ILLEGAL: u32 = 4294967295u32;
1467#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1468pub const PID_LOCALE: u32 = 2147483648u32;
1469#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1470pub const PID_MAX_READONLY: u32 = 3221225471u32;
1471#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1472pub const PID_MIN_READONLY: u32 = 2147483648u32;
1473#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1474pub const PID_MODIFY_TIME: u32 = 2147483649u32;
1475#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1476pub const PID_SECURITY: u32 = 2147483650u32;
1477#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1478pub const PROPSETFLAG_ANSI: u32 = 2u32;
1479#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1480pub const PROPSETFLAG_CASE_SENSITIVE: u32 = 8u32;
1481#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1482pub const PROPSETFLAG_DEFAULT: u32 = 0u32;
1483#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1484pub const PROPSETFLAG_NONSIMPLE: u32 = 1u32;
1485#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1486pub const PROPSETFLAG_UNBUFFERED: u32 = 4u32;
1487#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1488pub const PROPSETHDR_OSVERSION_UNKNOWN: u32 = 4294967295u32;
1489#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1490pub const PROPSET_BEHAVIOR_CASE_SENSITIVE: u32 = 1u32;
1491#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1492pub const PRSPEC_INVALID: u32 = 4294967295u32;
1493#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1494pub const STGOPTIONS_VERSION: u32 = 1u32;
1495#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1496#[repr(transparent)]
1497#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
1498pub struct PIDMSI_STATUS_VALUE(pub i32);
1499#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1500pub const PIDMSI_STATUS_NORMAL: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(0i32);
1501#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1502pub const PIDMSI_STATUS_NEW: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(1i32);
1503#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1504pub const PIDMSI_STATUS_PRELIM: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(2i32);
1505#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1506pub const PIDMSI_STATUS_DRAFT: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(3i32);
1507#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1508pub const PIDMSI_STATUS_INPROGRESS: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(4i32);
1509#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1510pub const PIDMSI_STATUS_EDIT: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(5i32);
1511#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1512pub const PIDMSI_STATUS_REVIEW: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(6i32);
1513#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1514pub const PIDMSI_STATUS_PROOF: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(7i32);
1515#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1516pub const PIDMSI_STATUS_FINAL: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(8i32);
1517#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1518pub const PIDMSI_STATUS_OTHER: PIDMSI_STATUS_VALUE = PIDMSI_STATUS_VALUE(32767i32);
1519impl ::core::marker::Copy for PIDMSI_STATUS_VALUE {}
1520impl ::core::clone::Clone for PIDMSI_STATUS_VALUE {
1521 fn clone(&self) -> Self {
1522 *self
1523 }
1524}
1525impl ::core::default::Default for PIDMSI_STATUS_VALUE {
1526 fn default() -> Self {
1527 Self(0)
1528 }
1529}
1530impl ::windows::core::TypeKind for PIDMSI_STATUS_VALUE {
1531 type TypeKind = ::windows::core::CopyType;
1532}
1533impl ::core::fmt::Debug for PIDMSI_STATUS_VALUE {
1534 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1535 f.debug_tuple("PIDMSI_STATUS_VALUE").field(&self.0).finish()
1536 }
1537}
1538#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1539#[repr(transparent)]
1540#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
1541pub struct PROPSPEC_KIND(pub u32);
1542#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1543pub const PRSPEC_LPWSTR: PROPSPEC_KIND = PROPSPEC_KIND(0u32);
1544#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1545pub const PRSPEC_PROPID: PROPSPEC_KIND = PROPSPEC_KIND(1u32);
1546impl ::core::marker::Copy for PROPSPEC_KIND {}
1547impl ::core::clone::Clone for PROPSPEC_KIND {
1548 fn clone(&self) -> Self {
1549 *self
1550 }
1551}
1552impl ::core::default::Default for PROPSPEC_KIND {
1553 fn default() -> Self {
1554 Self(0)
1555 }
1556}
1557impl ::windows::core::TypeKind for PROPSPEC_KIND {
1558 type TypeKind = ::windows::core::CopyType;
1559}
1560impl ::core::fmt::Debug for PROPSPEC_KIND {
1561 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1562 f.debug_tuple("PROPSPEC_KIND").field(&self.0).finish()
1563 }
1564}
1565#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1566#[repr(transparent)]
1567#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
1568pub struct STGFMT(pub u32);
1569#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1570pub const STGFMT_STORAGE: STGFMT = STGFMT(0u32);
1571#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1572pub const STGFMT_NATIVE: STGFMT = STGFMT(1u32);
1573#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1574pub const STGFMT_FILE: STGFMT = STGFMT(3u32);
1575#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1576pub const STGFMT_ANY: STGFMT = STGFMT(4u32);
1577#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1578pub const STGFMT_DOCFILE: STGFMT = STGFMT(5u32);
1579#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1580pub const STGFMT_DOCUMENT: STGFMT = STGFMT(0u32);
1581impl ::core::marker::Copy for STGFMT {}
1582impl ::core::clone::Clone for STGFMT {
1583 fn clone(&self) -> Self {
1584 *self
1585 }
1586}
1587impl ::core::default::Default for STGFMT {
1588 fn default() -> Self {
1589 Self(0)
1590 }
1591}
1592impl ::windows::core::TypeKind for STGFMT {
1593 type TypeKind = ::windows::core::CopyType;
1594}
1595impl ::core::fmt::Debug for STGFMT {
1596 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1597 f.debug_tuple("STGFMT").field(&self.0).finish()
1598 }
1599}
1600#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1601#[repr(transparent)]
1602#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
1603pub struct STGMOVE(pub i32);
1604#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1605pub const STGMOVE_MOVE: STGMOVE = STGMOVE(0i32);
1606#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1607pub const STGMOVE_COPY: STGMOVE = STGMOVE(1i32);
1608#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1609pub const STGMOVE_SHALLOWCOPY: STGMOVE = STGMOVE(2i32);
1610impl ::core::marker::Copy for STGMOVE {}
1611impl ::core::clone::Clone for STGMOVE {
1612 fn clone(&self) -> Self {
1613 *self
1614 }
1615}
1616impl ::core::default::Default for STGMOVE {
1617 fn default() -> Self {
1618 Self(0)
1619 }
1620}
1621impl ::windows::core::TypeKind for STGMOVE {
1622 type TypeKind = ::windows::core::CopyType;
1623}
1624impl ::core::fmt::Debug for STGMOVE {
1625 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1626 f.debug_tuple("STGMOVE").field(&self.0).finish()
1627 }
1628}
1629#[repr(C)]
1630#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1631pub struct BSTRBLOB {
1632 pub cbSize: u32,
1633 pub pData: *mut u8,
1634}
1635impl ::core::marker::Copy for BSTRBLOB {}
1636impl ::core::clone::Clone for BSTRBLOB {
1637 fn clone(&self) -> Self {
1638 *self
1639 }
1640}
1641impl ::core::fmt::Debug for BSTRBLOB {
1642 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1643 f.debug_struct("BSTRBLOB").field("cbSize", &self.cbSize).field("pData", &self.pData).finish()
1644 }
1645}
1646impl ::windows::core::TypeKind for BSTRBLOB {
1647 type TypeKind = ::windows::core::CopyType;
1648}
1649impl ::core::cmp::PartialEq for BSTRBLOB {
1650 fn eq(&self, other: &Self) -> bool {
1651 self.cbSize == other.cbSize && self.pData == other.pData
1652 }
1653}
1654impl ::core::cmp::Eq for BSTRBLOB {}
1655impl ::core::default::Default for BSTRBLOB {
1656 fn default() -> Self {
1657 unsafe { ::core::mem::zeroed() }
1658 }
1659}
1660#[repr(C)]
1661#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
1662#[cfg(feature = "Win32_Foundation")]
1663pub struct CABOOL {
1664 pub cElems: u32,
1665 pub pElems: *mut super::super::super::Foundation::VARIANT_BOOL,
1666}
1667#[cfg(feature = "Win32_Foundation")]
1668impl ::core::marker::Copy for CABOOL {}
1669#[cfg(feature = "Win32_Foundation")]
1670impl ::core::clone::Clone for CABOOL {
1671 fn clone(&self) -> Self {
1672 *self
1673 }
1674}
1675#[cfg(feature = "Win32_Foundation")]
1676impl ::core::fmt::Debug for CABOOL {
1677 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1678 f.debug_struct("CABOOL").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1679 }
1680}
1681#[cfg(feature = "Win32_Foundation")]
1682impl ::windows::core::TypeKind for CABOOL {
1683 type TypeKind = ::windows::core::CopyType;
1684}
1685#[cfg(feature = "Win32_Foundation")]
1686impl ::core::cmp::PartialEq for CABOOL {
1687 fn eq(&self, other: &Self) -> bool {
1688 self.cElems == other.cElems && self.pElems == other.pElems
1689 }
1690}
1691#[cfg(feature = "Win32_Foundation")]
1692impl ::core::cmp::Eq for CABOOL {}
1693#[cfg(feature = "Win32_Foundation")]
1694impl ::core::default::Default for CABOOL {
1695 fn default() -> Self {
1696 unsafe { ::core::mem::zeroed() }
1697 }
1698}
1699#[repr(C)]
1700#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1701pub struct CABSTR {
1702 pub cElems: u32,
1703 pub pElems: *mut ::windows::core::BSTR,
1704}
1705impl ::core::marker::Copy for CABSTR {}
1706impl ::core::clone::Clone for CABSTR {
1707 fn clone(&self) -> Self {
1708 *self
1709 }
1710}
1711impl ::core::fmt::Debug for CABSTR {
1712 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1713 f.debug_struct("CABSTR").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1714 }
1715}
1716impl ::windows::core::TypeKind for CABSTR {
1717 type TypeKind = ::windows::core::CopyType;
1718}
1719impl ::core::cmp::PartialEq for CABSTR {
1720 fn eq(&self, other: &Self) -> bool {
1721 self.cElems == other.cElems && self.pElems == other.pElems
1722 }
1723}
1724impl ::core::cmp::Eq for CABSTR {}
1725impl ::core::default::Default for CABSTR {
1726 fn default() -> Self {
1727 unsafe { ::core::mem::zeroed() }
1728 }
1729}
1730#[repr(C)]
1731#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1732pub struct CABSTRBLOB {
1733 pub cElems: u32,
1734 pub pElems: *mut BSTRBLOB,
1735}
1736impl ::core::marker::Copy for CABSTRBLOB {}
1737impl ::core::clone::Clone for CABSTRBLOB {
1738 fn clone(&self) -> Self {
1739 *self
1740 }
1741}
1742impl ::core::fmt::Debug for CABSTRBLOB {
1743 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1744 f.debug_struct("CABSTRBLOB").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1745 }
1746}
1747impl ::windows::core::TypeKind for CABSTRBLOB {
1748 type TypeKind = ::windows::core::CopyType;
1749}
1750impl ::core::cmp::PartialEq for CABSTRBLOB {
1751 fn eq(&self, other: &Self) -> bool {
1752 self.cElems == other.cElems && self.pElems == other.pElems
1753 }
1754}
1755impl ::core::cmp::Eq for CABSTRBLOB {}
1756impl ::core::default::Default for CABSTRBLOB {
1757 fn default() -> Self {
1758 unsafe { ::core::mem::zeroed() }
1759 }
1760}
1761#[repr(C)]
1762#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1763pub struct CAC {
1764 pub cElems: u32,
1765 pub pElems: ::windows::core::PSTR,
1766}
1767impl ::core::marker::Copy for CAC {}
1768impl ::core::clone::Clone for CAC {
1769 fn clone(&self) -> Self {
1770 *self
1771 }
1772}
1773impl ::core::fmt::Debug for CAC {
1774 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1775 f.debug_struct("CAC").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1776 }
1777}
1778impl ::windows::core::TypeKind for CAC {
1779 type TypeKind = ::windows::core::CopyType;
1780}
1781impl ::core::cmp::PartialEq for CAC {
1782 fn eq(&self, other: &Self) -> bool {
1783 self.cElems == other.cElems && self.pElems == other.pElems
1784 }
1785}
1786impl ::core::cmp::Eq for CAC {}
1787impl ::core::default::Default for CAC {
1788 fn default() -> Self {
1789 unsafe { ::core::mem::zeroed() }
1790 }
1791}
1792#[repr(C)]
1793#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1794pub struct CACLIPDATA {
1795 pub cElems: u32,
1796 pub pElems: *mut CLIPDATA,
1797}
1798impl ::core::marker::Copy for CACLIPDATA {}
1799impl ::core::clone::Clone for CACLIPDATA {
1800 fn clone(&self) -> Self {
1801 *self
1802 }
1803}
1804impl ::core::fmt::Debug for CACLIPDATA {
1805 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1806 f.debug_struct("CACLIPDATA").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1807 }
1808}
1809impl ::windows::core::TypeKind for CACLIPDATA {
1810 type TypeKind = ::windows::core::CopyType;
1811}
1812impl ::core::cmp::PartialEq for CACLIPDATA {
1813 fn eq(&self, other: &Self) -> bool {
1814 self.cElems == other.cElems && self.pElems == other.pElems
1815 }
1816}
1817impl ::core::cmp::Eq for CACLIPDATA {}
1818impl ::core::default::Default for CACLIPDATA {
1819 fn default() -> Self {
1820 unsafe { ::core::mem::zeroed() }
1821 }
1822}
1823#[repr(C)]
1824#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1825pub struct CACLSID {
1826 pub cElems: u32,
1827 pub pElems: *mut ::windows::core::GUID,
1828}
1829impl ::core::marker::Copy for CACLSID {}
1830impl ::core::clone::Clone for CACLSID {
1831 fn clone(&self) -> Self {
1832 *self
1833 }
1834}
1835impl ::core::fmt::Debug for CACLSID {
1836 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1837 f.debug_struct("CACLSID").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1838 }
1839}
1840impl ::windows::core::TypeKind for CACLSID {
1841 type TypeKind = ::windows::core::CopyType;
1842}
1843impl ::core::cmp::PartialEq for CACLSID {
1844 fn eq(&self, other: &Self) -> bool {
1845 self.cElems == other.cElems && self.pElems == other.pElems
1846 }
1847}
1848impl ::core::cmp::Eq for CACLSID {}
1849impl ::core::default::Default for CACLSID {
1850 fn default() -> Self {
1851 unsafe { ::core::mem::zeroed() }
1852 }
1853}
1854#[repr(C)]
1855#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1856pub struct CACY {
1857 pub cElems: u32,
1858 pub pElems: *mut super::CY,
1859}
1860impl ::core::marker::Copy for CACY {}
1861impl ::core::clone::Clone for CACY {
1862 fn clone(&self) -> Self {
1863 *self
1864 }
1865}
1866impl ::core::fmt::Debug for CACY {
1867 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1868 f.debug_struct("CACY").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1869 }
1870}
1871impl ::windows::core::TypeKind for CACY {
1872 type TypeKind = ::windows::core::CopyType;
1873}
1874impl ::core::cmp::PartialEq for CACY {
1875 fn eq(&self, other: &Self) -> bool {
1876 self.cElems == other.cElems && self.pElems == other.pElems
1877 }
1878}
1879impl ::core::cmp::Eq for CACY {}
1880impl ::core::default::Default for CACY {
1881 fn default() -> Self {
1882 unsafe { ::core::mem::zeroed() }
1883 }
1884}
1885#[repr(C)]
1886#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1887pub struct CADATE {
1888 pub cElems: u32,
1889 pub pElems: *mut f64,
1890}
1891impl ::core::marker::Copy for CADATE {}
1892impl ::core::clone::Clone for CADATE {
1893 fn clone(&self) -> Self {
1894 *self
1895 }
1896}
1897impl ::core::fmt::Debug for CADATE {
1898 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1899 f.debug_struct("CADATE").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1900 }
1901}
1902impl ::windows::core::TypeKind for CADATE {
1903 type TypeKind = ::windows::core::CopyType;
1904}
1905impl ::core::cmp::PartialEq for CADATE {
1906 fn eq(&self, other: &Self) -> bool {
1907 self.cElems == other.cElems && self.pElems == other.pElems
1908 }
1909}
1910impl ::core::cmp::Eq for CADATE {}
1911impl ::core::default::Default for CADATE {
1912 fn default() -> Self {
1913 unsafe { ::core::mem::zeroed() }
1914 }
1915}
1916#[repr(C)]
1917#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1918pub struct CADBL {
1919 pub cElems: u32,
1920 pub pElems: *mut f64,
1921}
1922impl ::core::marker::Copy for CADBL {}
1923impl ::core::clone::Clone for CADBL {
1924 fn clone(&self) -> Self {
1925 *self
1926 }
1927}
1928impl ::core::fmt::Debug for CADBL {
1929 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1930 f.debug_struct("CADBL").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1931 }
1932}
1933impl ::windows::core::TypeKind for CADBL {
1934 type TypeKind = ::windows::core::CopyType;
1935}
1936impl ::core::cmp::PartialEq for CADBL {
1937 fn eq(&self, other: &Self) -> bool {
1938 self.cElems == other.cElems && self.pElems == other.pElems
1939 }
1940}
1941impl ::core::cmp::Eq for CADBL {}
1942impl ::core::default::Default for CADBL {
1943 fn default() -> Self {
1944 unsafe { ::core::mem::zeroed() }
1945 }
1946}
1947#[repr(C)]
1948#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
1949#[cfg(feature = "Win32_Foundation")]
1950pub struct CAFILETIME {
1951 pub cElems: u32,
1952 pub pElems: *mut super::super::super::Foundation::FILETIME,
1953}
1954#[cfg(feature = "Win32_Foundation")]
1955impl ::core::marker::Copy for CAFILETIME {}
1956#[cfg(feature = "Win32_Foundation")]
1957impl ::core::clone::Clone for CAFILETIME {
1958 fn clone(&self) -> Self {
1959 *self
1960 }
1961}
1962#[cfg(feature = "Win32_Foundation")]
1963impl ::core::fmt::Debug for CAFILETIME {
1964 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1965 f.debug_struct("CAFILETIME").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
1966 }
1967}
1968#[cfg(feature = "Win32_Foundation")]
1969impl ::windows::core::TypeKind for CAFILETIME {
1970 type TypeKind = ::windows::core::CopyType;
1971}
1972#[cfg(feature = "Win32_Foundation")]
1973impl ::core::cmp::PartialEq for CAFILETIME {
1974 fn eq(&self, other: &Self) -> bool {
1975 self.cElems == other.cElems && self.pElems == other.pElems
1976 }
1977}
1978#[cfg(feature = "Win32_Foundation")]
1979impl ::core::cmp::Eq for CAFILETIME {}
1980#[cfg(feature = "Win32_Foundation")]
1981impl ::core::default::Default for CAFILETIME {
1982 fn default() -> Self {
1983 unsafe { ::core::mem::zeroed() }
1984 }
1985}
1986#[repr(C)]
1987#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
1988pub struct CAFLT {
1989 pub cElems: u32,
1990 pub pElems: *mut f32,
1991}
1992impl ::core::marker::Copy for CAFLT {}
1993impl ::core::clone::Clone for CAFLT {
1994 fn clone(&self) -> Self {
1995 *self
1996 }
1997}
1998impl ::core::fmt::Debug for CAFLT {
1999 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2000 f.debug_struct("CAFLT").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2001 }
2002}
2003impl ::windows::core::TypeKind for CAFLT {
2004 type TypeKind = ::windows::core::CopyType;
2005}
2006impl ::core::cmp::PartialEq for CAFLT {
2007 fn eq(&self, other: &Self) -> bool {
2008 self.cElems == other.cElems && self.pElems == other.pElems
2009 }
2010}
2011impl ::core::cmp::Eq for CAFLT {}
2012impl ::core::default::Default for CAFLT {
2013 fn default() -> Self {
2014 unsafe { ::core::mem::zeroed() }
2015 }
2016}
2017#[repr(C)]
2018#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2019pub struct CAH {
2020 pub cElems: u32,
2021 pub pElems: *mut i64,
2022}
2023impl ::core::marker::Copy for CAH {}
2024impl ::core::clone::Clone for CAH {
2025 fn clone(&self) -> Self {
2026 *self
2027 }
2028}
2029impl ::core::fmt::Debug for CAH {
2030 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2031 f.debug_struct("CAH").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2032 }
2033}
2034impl ::windows::core::TypeKind for CAH {
2035 type TypeKind = ::windows::core::CopyType;
2036}
2037impl ::core::cmp::PartialEq for CAH {
2038 fn eq(&self, other: &Self) -> bool {
2039 self.cElems == other.cElems && self.pElems == other.pElems
2040 }
2041}
2042impl ::core::cmp::Eq for CAH {}
2043impl ::core::default::Default for CAH {
2044 fn default() -> Self {
2045 unsafe { ::core::mem::zeroed() }
2046 }
2047}
2048#[repr(C)]
2049#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2050pub struct CAI {
2051 pub cElems: u32,
2052 pub pElems: *mut i16,
2053}
2054impl ::core::marker::Copy for CAI {}
2055impl ::core::clone::Clone for CAI {
2056 fn clone(&self) -> Self {
2057 *self
2058 }
2059}
2060impl ::core::fmt::Debug for CAI {
2061 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2062 f.debug_struct("CAI").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2063 }
2064}
2065impl ::windows::core::TypeKind for CAI {
2066 type TypeKind = ::windows::core::CopyType;
2067}
2068impl ::core::cmp::PartialEq for CAI {
2069 fn eq(&self, other: &Self) -> bool {
2070 self.cElems == other.cElems && self.pElems == other.pElems
2071 }
2072}
2073impl ::core::cmp::Eq for CAI {}
2074impl ::core::default::Default for CAI {
2075 fn default() -> Self {
2076 unsafe { ::core::mem::zeroed() }
2077 }
2078}
2079#[repr(C)]
2080#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2081pub struct CAL {
2082 pub cElems: u32,
2083 pub pElems: *mut i32,
2084}
2085impl ::core::marker::Copy for CAL {}
2086impl ::core::clone::Clone for CAL {
2087 fn clone(&self) -> Self {
2088 *self
2089 }
2090}
2091impl ::core::fmt::Debug for CAL {
2092 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2093 f.debug_struct("CAL").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2094 }
2095}
2096impl ::windows::core::TypeKind for CAL {
2097 type TypeKind = ::windows::core::CopyType;
2098}
2099impl ::core::cmp::PartialEq for CAL {
2100 fn eq(&self, other: &Self) -> bool {
2101 self.cElems == other.cElems && self.pElems == other.pElems
2102 }
2103}
2104impl ::core::cmp::Eq for CAL {}
2105impl ::core::default::Default for CAL {
2106 fn default() -> Self {
2107 unsafe { ::core::mem::zeroed() }
2108 }
2109}
2110#[repr(C)]
2111#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2112pub struct CALPSTR {
2113 pub cElems: u32,
2114 pub pElems: *mut ::windows::core::PSTR,
2115}
2116impl ::core::marker::Copy for CALPSTR {}
2117impl ::core::clone::Clone for CALPSTR {
2118 fn clone(&self) -> Self {
2119 *self
2120 }
2121}
2122impl ::core::fmt::Debug for CALPSTR {
2123 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2124 f.debug_struct("CALPSTR").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2125 }
2126}
2127impl ::windows::core::TypeKind for CALPSTR {
2128 type TypeKind = ::windows::core::CopyType;
2129}
2130impl ::core::cmp::PartialEq for CALPSTR {
2131 fn eq(&self, other: &Self) -> bool {
2132 self.cElems == other.cElems && self.pElems == other.pElems
2133 }
2134}
2135impl ::core::cmp::Eq for CALPSTR {}
2136impl ::core::default::Default for CALPSTR {
2137 fn default() -> Self {
2138 unsafe { ::core::mem::zeroed() }
2139 }
2140}
2141#[repr(C)]
2142#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2143pub struct CALPWSTR {
2144 pub cElems: u32,
2145 pub pElems: *mut ::windows::core::PWSTR,
2146}
2147impl ::core::marker::Copy for CALPWSTR {}
2148impl ::core::clone::Clone for CALPWSTR {
2149 fn clone(&self) -> Self {
2150 *self
2151 }
2152}
2153impl ::core::fmt::Debug for CALPWSTR {
2154 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2155 f.debug_struct("CALPWSTR").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2156 }
2157}
2158impl ::windows::core::TypeKind for CALPWSTR {
2159 type TypeKind = ::windows::core::CopyType;
2160}
2161impl ::core::cmp::PartialEq for CALPWSTR {
2162 fn eq(&self, other: &Self) -> bool {
2163 self.cElems == other.cElems && self.pElems == other.pElems
2164 }
2165}
2166impl ::core::cmp::Eq for CALPWSTR {}
2167impl ::core::default::Default for CALPWSTR {
2168 fn default() -> Self {
2169 unsafe { ::core::mem::zeroed() }
2170 }
2171}
2172#[repr(C)]
2173#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
2174#[cfg(feature = "Win32_Foundation")]
2175pub struct CAPROPVARIANT {
2176 pub cElems: u32,
2177 pub pElems: *mut PROPVARIANT,
2178}
2179#[cfg(feature = "Win32_Foundation")]
2180impl ::core::marker::Copy for CAPROPVARIANT {}
2181#[cfg(feature = "Win32_Foundation")]
2182impl ::core::clone::Clone for CAPROPVARIANT {
2183 fn clone(&self) -> Self {
2184 *self
2185 }
2186}
2187#[cfg(feature = "Win32_Foundation")]
2188impl ::core::fmt::Debug for CAPROPVARIANT {
2189 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2190 f.debug_struct("CAPROPVARIANT").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2191 }
2192}
2193#[cfg(feature = "Win32_Foundation")]
2194impl ::windows::core::TypeKind for CAPROPVARIANT {
2195 type TypeKind = ::windows::core::CopyType;
2196}
2197#[cfg(feature = "Win32_Foundation")]
2198impl ::core::cmp::PartialEq for CAPROPVARIANT {
2199 fn eq(&self, other: &Self) -> bool {
2200 self.cElems == other.cElems && self.pElems == other.pElems
2201 }
2202}
2203#[cfg(feature = "Win32_Foundation")]
2204impl ::core::cmp::Eq for CAPROPVARIANT {}
2205#[cfg(feature = "Win32_Foundation")]
2206impl ::core::default::Default for CAPROPVARIANT {
2207 fn default() -> Self {
2208 unsafe { ::core::mem::zeroed() }
2209 }
2210}
2211#[repr(C)]
2212#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2213pub struct CASCODE {
2214 pub cElems: u32,
2215 pub pElems: *mut i32,
2216}
2217impl ::core::marker::Copy for CASCODE {}
2218impl ::core::clone::Clone for CASCODE {
2219 fn clone(&self) -> Self {
2220 *self
2221 }
2222}
2223impl ::core::fmt::Debug for CASCODE {
2224 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2225 f.debug_struct("CASCODE").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2226 }
2227}
2228impl ::windows::core::TypeKind for CASCODE {
2229 type TypeKind = ::windows::core::CopyType;
2230}
2231impl ::core::cmp::PartialEq for CASCODE {
2232 fn eq(&self, other: &Self) -> bool {
2233 self.cElems == other.cElems && self.pElems == other.pElems
2234 }
2235}
2236impl ::core::cmp::Eq for CASCODE {}
2237impl ::core::default::Default for CASCODE {
2238 fn default() -> Self {
2239 unsafe { ::core::mem::zeroed() }
2240 }
2241}
2242#[repr(C)]
2243#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2244pub struct CAUB {
2245 pub cElems: u32,
2246 pub pElems: *mut u8,
2247}
2248impl ::core::marker::Copy for CAUB {}
2249impl ::core::clone::Clone for CAUB {
2250 fn clone(&self) -> Self {
2251 *self
2252 }
2253}
2254impl ::core::fmt::Debug for CAUB {
2255 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2256 f.debug_struct("CAUB").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2257 }
2258}
2259impl ::windows::core::TypeKind for CAUB {
2260 type TypeKind = ::windows::core::CopyType;
2261}
2262impl ::core::cmp::PartialEq for CAUB {
2263 fn eq(&self, other: &Self) -> bool {
2264 self.cElems == other.cElems && self.pElems == other.pElems
2265 }
2266}
2267impl ::core::cmp::Eq for CAUB {}
2268impl ::core::default::Default for CAUB {
2269 fn default() -> Self {
2270 unsafe { ::core::mem::zeroed() }
2271 }
2272}
2273#[repr(C)]
2274#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2275pub struct CAUH {
2276 pub cElems: u32,
2277 pub pElems: *mut u64,
2278}
2279impl ::core::marker::Copy for CAUH {}
2280impl ::core::clone::Clone for CAUH {
2281 fn clone(&self) -> Self {
2282 *self
2283 }
2284}
2285impl ::core::fmt::Debug for CAUH {
2286 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2287 f.debug_struct("CAUH").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2288 }
2289}
2290impl ::windows::core::TypeKind for CAUH {
2291 type TypeKind = ::windows::core::CopyType;
2292}
2293impl ::core::cmp::PartialEq for CAUH {
2294 fn eq(&self, other: &Self) -> bool {
2295 self.cElems == other.cElems && self.pElems == other.pElems
2296 }
2297}
2298impl ::core::cmp::Eq for CAUH {}
2299impl ::core::default::Default for CAUH {
2300 fn default() -> Self {
2301 unsafe { ::core::mem::zeroed() }
2302 }
2303}
2304#[repr(C)]
2305#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2306pub struct CAUI {
2307 pub cElems: u32,
2308 pub pElems: *mut u16,
2309}
2310impl ::core::marker::Copy for CAUI {}
2311impl ::core::clone::Clone for CAUI {
2312 fn clone(&self) -> Self {
2313 *self
2314 }
2315}
2316impl ::core::fmt::Debug for CAUI {
2317 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2318 f.debug_struct("CAUI").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2319 }
2320}
2321impl ::windows::core::TypeKind for CAUI {
2322 type TypeKind = ::windows::core::CopyType;
2323}
2324impl ::core::cmp::PartialEq for CAUI {
2325 fn eq(&self, other: &Self) -> bool {
2326 self.cElems == other.cElems && self.pElems == other.pElems
2327 }
2328}
2329impl ::core::cmp::Eq for CAUI {}
2330impl ::core::default::Default for CAUI {
2331 fn default() -> Self {
2332 unsafe { ::core::mem::zeroed() }
2333 }
2334}
2335#[repr(C)]
2336#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2337pub struct CAUL {
2338 pub cElems: u32,
2339 pub pElems: *mut u32,
2340}
2341impl ::core::marker::Copy for CAUL {}
2342impl ::core::clone::Clone for CAUL {
2343 fn clone(&self) -> Self {
2344 *self
2345 }
2346}
2347impl ::core::fmt::Debug for CAUL {
2348 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2349 f.debug_struct("CAUL").field("cElems", &self.cElems).field("pElems", &self.pElems).finish()
2350 }
2351}
2352impl ::windows::core::TypeKind for CAUL {
2353 type TypeKind = ::windows::core::CopyType;
2354}
2355impl ::core::cmp::PartialEq for CAUL {
2356 fn eq(&self, other: &Self) -> bool {
2357 self.cElems == other.cElems && self.pElems == other.pElems
2358 }
2359}
2360impl ::core::cmp::Eq for CAUL {}
2361impl ::core::default::Default for CAUL {
2362 fn default() -> Self {
2363 unsafe { ::core::mem::zeroed() }
2364 }
2365}
2366#[repr(C)]
2367#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2368pub struct CLIPDATA {
2369 pub cbSize: u32,
2370 pub ulClipFmt: i32,
2371 pub pClipData: *mut u8,
2372}
2373impl ::core::marker::Copy for CLIPDATA {}
2374impl ::core::clone::Clone for CLIPDATA {
2375 fn clone(&self) -> Self {
2376 *self
2377 }
2378}
2379impl ::core::fmt::Debug for CLIPDATA {
2380 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2381 f.debug_struct("CLIPDATA").field("cbSize", &self.cbSize).field("ulClipFmt", &self.ulClipFmt).field("pClipData", &self.pClipData).finish()
2382 }
2383}
2384impl ::windows::core::TypeKind for CLIPDATA {
2385 type TypeKind = ::windows::core::CopyType;
2386}
2387impl ::core::cmp::PartialEq for CLIPDATA {
2388 fn eq(&self, other: &Self) -> bool {
2389 self.cbSize == other.cbSize && self.ulClipFmt == other.ulClipFmt && self.pClipData == other.pClipData
2390 }
2391}
2392impl ::core::cmp::Eq for CLIPDATA {}
2393impl ::core::default::Default for CLIPDATA {
2394 fn default() -> Self {
2395 unsafe { ::core::mem::zeroed() }
2396 }
2397}
2398#[repr(C)]
2399#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2400pub struct OLESTREAM {
2401 pub lpstbl: *mut OLESTREAMVTBL,
2402}
2403impl ::core::marker::Copy for OLESTREAM {}
2404impl ::core::clone::Clone for OLESTREAM {
2405 fn clone(&self) -> Self {
2406 *self
2407 }
2408}
2409impl ::core::fmt::Debug for OLESTREAM {
2410 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2411 f.debug_struct("OLESTREAM").field("lpstbl", &self.lpstbl).finish()
2412 }
2413}
2414impl ::windows::core::TypeKind for OLESTREAM {
2415 type TypeKind = ::windows::core::CopyType;
2416}
2417impl ::core::cmp::PartialEq for OLESTREAM {
2418 fn eq(&self, other: &Self) -> bool {
2419 self.lpstbl == other.lpstbl
2420 }
2421}
2422impl ::core::cmp::Eq for OLESTREAM {}
2423impl ::core::default::Default for OLESTREAM {
2424 fn default() -> Self {
2425 unsafe { ::core::mem::zeroed() }
2426 }
2427}
2428#[repr(C)]
2429#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2430pub struct OLESTREAMVTBL {
2431 pub Get: isize,
2432 pub Put: isize,
2433}
2434impl ::core::marker::Copy for OLESTREAMVTBL {}
2435impl ::core::clone::Clone for OLESTREAMVTBL {
2436 fn clone(&self) -> Self {
2437 *self
2438 }
2439}
2440impl ::core::fmt::Debug for OLESTREAMVTBL {
2441 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2442 f.debug_struct("OLESTREAMVTBL").field("Get", &self.Get).field("Put", &self.Put).finish()
2443 }
2444}
2445impl ::windows::core::TypeKind for OLESTREAMVTBL {
2446 type TypeKind = ::windows::core::CopyType;
2447}
2448impl ::core::cmp::PartialEq for OLESTREAMVTBL {
2449 fn eq(&self, other: &Self) -> bool {
2450 self.Get == other.Get && self.Put == other.Put
2451 }
2452}
2453impl ::core::cmp::Eq for OLESTREAMVTBL {}
2454impl ::core::default::Default for OLESTREAMVTBL {
2455 fn default() -> Self {
2456 unsafe { ::core::mem::zeroed() }
2457 }
2458}
2459#[repr(C)]
2460pub struct PMemoryAllocator(pub u8);
2461#[repr(C)]
2462#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2463pub struct PROPBAG2 {
2464 pub dwType: u32,
2465 pub vt: super::VARENUM,
2466 pub cfType: u16,
2467 pub dwHint: u32,
2468 pub pstrName: ::windows::core::PWSTR,
2469 pub clsid: ::windows::core::GUID,
2470}
2471impl ::core::marker::Copy for PROPBAG2 {}
2472impl ::core::clone::Clone for PROPBAG2 {
2473 fn clone(&self) -> Self {
2474 *self
2475 }
2476}
2477impl ::core::fmt::Debug for PROPBAG2 {
2478 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2479 f.debug_struct("PROPBAG2").field("dwType", &self.dwType).field("vt", &self.vt).field("cfType", &self.cfType).field("dwHint", &self.dwHint).field("pstrName", &self.pstrName).field("clsid", &self.clsid).finish()
2480 }
2481}
2482impl ::windows::core::TypeKind for PROPBAG2 {
2483 type TypeKind = ::windows::core::CopyType;
2484}
2485impl ::core::cmp::PartialEq for PROPBAG2 {
2486 fn eq(&self, other: &Self) -> bool {
2487 self.dwType == other.dwType && self.vt == other.vt && self.cfType == other.cfType && self.dwHint == other.dwHint && self.pstrName == other.pstrName && self.clsid == other.clsid
2488 }
2489}
2490impl ::core::cmp::Eq for PROPBAG2 {}
2491impl ::core::default::Default for PROPBAG2 {
2492 fn default() -> Self {
2493 unsafe { ::core::mem::zeroed() }
2494 }
2495}
2496#[repr(C)]
2497#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2498pub struct PROPSPEC {
2499 pub ulKind: PROPSPEC_KIND,
2500 pub Anonymous: PROPSPEC_0,
2501}
2502impl ::core::marker::Copy for PROPSPEC {}
2503impl ::core::clone::Clone for PROPSPEC {
2504 fn clone(&self) -> Self {
2505 *self
2506 }
2507}
2508impl ::windows::core::TypeKind for PROPSPEC {
2509 type TypeKind = ::windows::core::CopyType;
2510}
2511impl ::core::default::Default for PROPSPEC {
2512 fn default() -> Self {
2513 unsafe { ::core::mem::zeroed() }
2514 }
2515}
2516#[repr(C)]
2517#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2518pub union PROPSPEC_0 {
2519 pub propid: u32,
2520 pub lpwstr: ::windows::core::PWSTR,
2521}
2522impl ::core::marker::Copy for PROPSPEC_0 {}
2523impl ::core::clone::Clone for PROPSPEC_0 {
2524 fn clone(&self) -> Self {
2525 *self
2526 }
2527}
2528impl ::windows::core::TypeKind for PROPSPEC_0 {
2529 type TypeKind = ::windows::core::CopyType;
2530}
2531impl ::core::default::Default for PROPSPEC_0 {
2532 fn default() -> Self {
2533 unsafe { ::core::mem::zeroed() }
2534 }
2535}
2536#[repr(C)]
2537#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
2538#[cfg(feature = "Win32_Foundation")]
2539pub struct PROPVARIANT {
2540 pub Anonymous: PROPVARIANT_0,
2541}
2542#[cfg(feature = "Win32_Foundation")]
2543impl ::core::clone::Clone for PROPVARIANT {
2544 fn clone(&self) -> Self {
2545 unsafe { ::core::mem::transmute_copy(self) }
2546 }
2547}
2548#[cfg(feature = "Win32_Foundation")]
2549impl ::windows::core::TypeKind for PROPVARIANT {
2550 type TypeKind = ::windows::core::CopyType;
2551}
2552#[cfg(feature = "Win32_Foundation")]
2553impl ::core::default::Default for PROPVARIANT {
2554 fn default() -> Self {
2555 unsafe { ::core::mem::zeroed() }
2556 }
2557}
2558#[repr(C)]
2559#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
2560#[cfg(feature = "Win32_Foundation")]
2561pub union PROPVARIANT_0 {
2562 pub Anonymous: ::std::mem::ManuallyDrop<PROPVARIANT_0_0>,
2563 pub decVal: super::super::super::Foundation::DECIMAL,
2564}
2565#[cfg(feature = "Win32_Foundation")]
2566impl ::core::clone::Clone for PROPVARIANT_0 {
2567 fn clone(&self) -> Self {
2568 unsafe { ::core::mem::transmute_copy(self) }
2569 }
2570}
2571#[cfg(feature = "Win32_Foundation")]
2572impl ::windows::core::TypeKind for PROPVARIANT_0 {
2573 type TypeKind = ::windows::core::CopyType;
2574}
2575#[cfg(feature = "Win32_Foundation")]
2576impl ::core::default::Default for PROPVARIANT_0 {
2577 fn default() -> Self {
2578 unsafe { ::core::mem::zeroed() }
2579 }
2580}
2581#[repr(C)]
2582#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
2583#[cfg(feature = "Win32_Foundation")]
2584pub struct PROPVARIANT_0_0 {
2585 pub vt: super::VARENUM,
2586 pub wReserved1: u16,
2587 pub wReserved2: u16,
2588 pub wReserved3: u16,
2589 pub Anonymous: PROPVARIANT_0_0_0,
2590}
2591#[cfg(feature = "Win32_Foundation")]
2592impl ::core::clone::Clone for PROPVARIANT_0_0 {
2593 fn clone(&self) -> Self {
2594 unsafe { ::core::mem::transmute_copy(self) }
2595 }
2596}
2597#[cfg(feature = "Win32_Foundation")]
2598impl ::windows::core::TypeKind for PROPVARIANT_0_0 {
2599 type TypeKind = ::windows::core::CopyType;
2600}
2601#[cfg(feature = "Win32_Foundation")]
2602impl ::core::default::Default for PROPVARIANT_0_0 {
2603 fn default() -> Self {
2604 unsafe { ::core::mem::zeroed() }
2605 }
2606}
2607#[repr(C)]
2608#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
2609#[cfg(feature = "Win32_Foundation")]
2610pub union PROPVARIANT_0_0_0 {
2611 pub cVal: u8,
2612 pub bVal: u8,
2613 pub iVal: i16,
2614 pub uiVal: u16,
2615 pub lVal: i32,
2616 pub ulVal: u32,
2617 pub intVal: i32,
2618 pub uintVal: u32,
2619 pub hVal: i64,
2620 pub uhVal: u64,
2621 pub fltVal: f32,
2622 pub dblVal: f64,
2623 pub boolVal: super::super::super::Foundation::VARIANT_BOOL,
2624 pub __OBSOLETE__VARIANT_BOOL: super::super::super::Foundation::VARIANT_BOOL,
2625 pub scode: i32,
2626 pub cyVal: super::CY,
2627 pub date: f64,
2628 pub filetime: super::super::super::Foundation::FILETIME,
2629 pub puuid: *mut ::windows::core::GUID,
2630 pub pclipdata: *mut CLIPDATA,
2631 pub bstrVal: ::std::mem::ManuallyDrop<::windows::core::BSTR>,
2632 pub bstrblobVal: BSTRBLOB,
2633 pub blob: super::BLOB,
2634 pub pszVal: ::windows::core::PSTR,
2635 pub pwszVal: ::windows::core::PWSTR,
2636 pub punkVal: ::std::mem::ManuallyDrop<::core::option::Option<::windows::core::IUnknown>>,
2637 pub pdispVal: ::std::mem::ManuallyDrop<::core::option::Option<super::IDispatch>>,
2638 pub pStream: ::std::mem::ManuallyDrop<::core::option::Option<super::IStream>>,
2639 pub pStorage: ::std::mem::ManuallyDrop<::core::option::Option<IStorage>>,
2640 pub pVersionedStream: *mut VERSIONEDSTREAM,
2641 pub parray: *mut super::SAFEARRAY,
2642 pub cac: CAC,
2643 pub caub: CAUB,
2644 pub cai: CAI,
2645 pub caui: CAUI,
2646 pub cal: CAL,
2647 pub caul: CAUL,
2648 pub cah: CAH,
2649 pub cauh: CAUH,
2650 pub caflt: CAFLT,
2651 pub cadbl: CADBL,
2652 pub cabool: CABOOL,
2653 pub cascode: CASCODE,
2654 pub cacy: CACY,
2655 pub cadate: CADATE,
2656 pub cafiletime: CAFILETIME,
2657 pub cauuid: CACLSID,
2658 pub caclipdata: CACLIPDATA,
2659 pub cabstr: CABSTR,
2660 pub cabstrblob: CABSTRBLOB,
2661 pub calpstr: CALPSTR,
2662 pub calpwstr: CALPWSTR,
2663 pub capropvar: CAPROPVARIANT,
2664 pub pcVal: ::windows::core::PSTR,
2665 pub pbVal: *mut u8,
2666 pub piVal: *mut i16,
2667 pub puiVal: *mut u16,
2668 pub plVal: *mut i32,
2669 pub pulVal: *mut u32,
2670 pub pintVal: *mut i32,
2671 pub puintVal: *mut u32,
2672 pub pfltVal: *mut f32,
2673 pub pdblVal: *mut f64,
2674 pub pboolVal: *mut super::super::super::Foundation::VARIANT_BOOL,
2675 pub pdecVal: *mut super::super::super::Foundation::DECIMAL,
2676 pub pscode: *mut i32,
2677 pub pcyVal: *mut super::CY,
2678 pub pdate: *mut f64,
2679 pub pbstrVal: *mut ::windows::core::BSTR,
2680 pub ppunkVal: *mut ::core::option::Option<::windows::core::IUnknown>,
2681 pub ppdispVal: *mut ::core::option::Option<super::IDispatch>,
2682 pub pparray: *mut *mut super::SAFEARRAY,
2683 pub pvarVal: *mut PROPVARIANT,
2684}
2685#[cfg(feature = "Win32_Foundation")]
2686impl ::core::clone::Clone for PROPVARIANT_0_0_0 {
2687 fn clone(&self) -> Self {
2688 unsafe { ::core::mem::transmute_copy(self) }
2689 }
2690}
2691#[cfg(feature = "Win32_Foundation")]
2692impl ::windows::core::TypeKind for PROPVARIANT_0_0_0 {
2693 type TypeKind = ::windows::core::CopyType;
2694}
2695#[cfg(feature = "Win32_Foundation")]
2696impl ::core::default::Default for PROPVARIANT_0_0_0 {
2697 fn default() -> Self {
2698 unsafe { ::core::mem::zeroed() }
2699 }
2700}
2701#[repr(C)]
2702#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2703pub struct RemSNB {
2704 pub ulCntStr: u32,
2705 pub ulCntChar: u32,
2706 pub rgString: [u16; 1],
2707}
2708impl ::core::marker::Copy for RemSNB {}
2709impl ::core::clone::Clone for RemSNB {
2710 fn clone(&self) -> Self {
2711 *self
2712 }
2713}
2714impl ::core::fmt::Debug for RemSNB {
2715 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2716 f.debug_struct("RemSNB").field("ulCntStr", &self.ulCntStr).field("ulCntChar", &self.ulCntChar).field("rgString", &self.rgString).finish()
2717 }
2718}
2719impl ::windows::core::TypeKind for RemSNB {
2720 type TypeKind = ::windows::core::CopyType;
2721}
2722impl ::core::cmp::PartialEq for RemSNB {
2723 fn eq(&self, other: &Self) -> bool {
2724 self.ulCntStr == other.ulCntStr && self.ulCntChar == other.ulCntChar && self.rgString == other.rgString
2725 }
2726}
2727impl ::core::cmp::Eq for RemSNB {}
2728impl ::core::default::Default for RemSNB {
2729 fn default() -> Self {
2730 unsafe { ::core::mem::zeroed() }
2731 }
2732}
2733#[repr(C)]
2734#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2735pub struct SERIALIZEDPROPERTYVALUE {
2736 pub dwType: u32,
2737 pub rgb: [u8; 1],
2738}
2739impl ::core::marker::Copy for SERIALIZEDPROPERTYVALUE {}
2740impl ::core::clone::Clone for SERIALIZEDPROPERTYVALUE {
2741 fn clone(&self) -> Self {
2742 *self
2743 }
2744}
2745impl ::core::fmt::Debug for SERIALIZEDPROPERTYVALUE {
2746 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2747 f.debug_struct("SERIALIZEDPROPERTYVALUE").field("dwType", &self.dwType).field("rgb", &self.rgb).finish()
2748 }
2749}
2750impl ::windows::core::TypeKind for SERIALIZEDPROPERTYVALUE {
2751 type TypeKind = ::windows::core::CopyType;
2752}
2753impl ::core::cmp::PartialEq for SERIALIZEDPROPERTYVALUE {
2754 fn eq(&self, other: &Self) -> bool {
2755 self.dwType == other.dwType && self.rgb == other.rgb
2756 }
2757}
2758impl ::core::cmp::Eq for SERIALIZEDPROPERTYVALUE {}
2759impl ::core::default::Default for SERIALIZEDPROPERTYVALUE {
2760 fn default() -> Self {
2761 unsafe { ::core::mem::zeroed() }
2762 }
2763}
2764#[repr(C)]
2765#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"]
2766#[cfg(feature = "Win32_Foundation")]
2767pub struct STATPROPSETSTG {
2768 pub fmtid: ::windows::core::GUID,
2769 pub clsid: ::windows::core::GUID,
2770 pub grfFlags: u32,
2771 pub mtime: super::super::super::Foundation::FILETIME,
2772 pub ctime: super::super::super::Foundation::FILETIME,
2773 pub atime: super::super::super::Foundation::FILETIME,
2774 pub dwOSVersion: u32,
2775}
2776#[cfg(feature = "Win32_Foundation")]
2777impl ::core::marker::Copy for STATPROPSETSTG {}
2778#[cfg(feature = "Win32_Foundation")]
2779impl ::core::clone::Clone for STATPROPSETSTG {
2780 fn clone(&self) -> Self {
2781 *self
2782 }
2783}
2784#[cfg(feature = "Win32_Foundation")]
2785impl ::core::fmt::Debug for STATPROPSETSTG {
2786 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2787 f.debug_struct("STATPROPSETSTG").field("fmtid", &self.fmtid).field("clsid", &self.clsid).field("grfFlags", &self.grfFlags).field("mtime", &self.mtime).field("ctime", &self.ctime).field("atime", &self.atime).field("dwOSVersion", &self.dwOSVersion).finish()
2788 }
2789}
2790#[cfg(feature = "Win32_Foundation")]
2791impl ::windows::core::TypeKind for STATPROPSETSTG {
2792 type TypeKind = ::windows::core::CopyType;
2793}
2794#[cfg(feature = "Win32_Foundation")]
2795impl ::core::cmp::PartialEq for STATPROPSETSTG {
2796 fn eq(&self, other: &Self) -> bool {
2797 self.fmtid == other.fmtid && self.clsid == other.clsid && self.grfFlags == other.grfFlags && self.mtime == other.mtime && self.ctime == other.ctime && self.atime == other.atime && self.dwOSVersion == other.dwOSVersion
2798 }
2799}
2800#[cfg(feature = "Win32_Foundation")]
2801impl ::core::cmp::Eq for STATPROPSETSTG {}
2802#[cfg(feature = "Win32_Foundation")]
2803impl ::core::default::Default for STATPROPSETSTG {
2804 fn default() -> Self {
2805 unsafe { ::core::mem::zeroed() }
2806 }
2807}
2808#[repr(C)]
2809#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2810pub struct STATPROPSTG {
2811 pub lpwstrName: ::windows::core::PWSTR,
2812 pub propid: u32,
2813 pub vt: super::VARENUM,
2814}
2815impl ::core::marker::Copy for STATPROPSTG {}
2816impl ::core::clone::Clone for STATPROPSTG {
2817 fn clone(&self) -> Self {
2818 *self
2819 }
2820}
2821impl ::core::fmt::Debug for STATPROPSTG {
2822 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2823 f.debug_struct("STATPROPSTG").field("lpwstrName", &self.lpwstrName).field("propid", &self.propid).field("vt", &self.vt).finish()
2824 }
2825}
2826impl ::windows::core::TypeKind for STATPROPSTG {
2827 type TypeKind = ::windows::core::CopyType;
2828}
2829impl ::core::cmp::PartialEq for STATPROPSTG {
2830 fn eq(&self, other: &Self) -> bool {
2831 self.lpwstrName == other.lpwstrName && self.propid == other.propid && self.vt == other.vt
2832 }
2833}
2834impl ::core::cmp::Eq for STATPROPSTG {}
2835impl ::core::default::Default for STATPROPSTG {
2836 fn default() -> Self {
2837 unsafe { ::core::mem::zeroed() }
2838 }
2839}
2840#[repr(C)]
2841#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2842pub struct STGOPTIONS {
2843 pub usVersion: u16,
2844 pub reserved: u16,
2845 pub ulSectorSize: u32,
2846 pub pwcsTemplateFile: ::windows::core::PCWSTR,
2847}
2848impl ::core::marker::Copy for STGOPTIONS {}
2849impl ::core::clone::Clone for STGOPTIONS {
2850 fn clone(&self) -> Self {
2851 *self
2852 }
2853}
2854impl ::core::fmt::Debug for STGOPTIONS {
2855 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2856 f.debug_struct("STGOPTIONS").field("usVersion", &self.usVersion).field("reserved", &self.reserved).field("ulSectorSize", &self.ulSectorSize).field("pwcsTemplateFile", &self.pwcsTemplateFile).finish()
2857 }
2858}
2859impl ::windows::core::TypeKind for STGOPTIONS {
2860 type TypeKind = ::windows::core::CopyType;
2861}
2862impl ::core::cmp::PartialEq for STGOPTIONS {
2863 fn eq(&self, other: &Self) -> bool {
2864 self.usVersion == other.usVersion && self.reserved == other.reserved && self.ulSectorSize == other.ulSectorSize && self.pwcsTemplateFile == other.pwcsTemplateFile
2865 }
2866}
2867impl ::core::cmp::Eq for STGOPTIONS {}
2868impl ::core::default::Default for STGOPTIONS {
2869 fn default() -> Self {
2870 unsafe { ::core::mem::zeroed() }
2871 }
2872}
2873#[repr(C)]
2874#[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"]
2875pub struct VERSIONEDSTREAM {
2876 pub guidVersion: ::windows::core::GUID,
2877 pub pStream: ::std::mem::ManuallyDrop<::core::option::Option<super::IStream>>,
2878}
2879impl ::core::clone::Clone for VERSIONEDSTREAM {
2880 fn clone(&self) -> Self {
2881 unsafe { ::core::mem::transmute_copy(self) }
2882 }
2883}
2884impl ::core::fmt::Debug for VERSIONEDSTREAM {
2885 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2886 f.debug_struct("VERSIONEDSTREAM").field("guidVersion", &self.guidVersion).field("pStream", &self.pStream).finish()
2887 }
2888}
2889impl ::windows::core::TypeKind for VERSIONEDSTREAM {
2890 type TypeKind = ::windows::core::CopyType;
2891}
2892impl ::core::cmp::PartialEq for VERSIONEDSTREAM {
2893 fn eq(&self, other: &Self) -> bool {
2894 self.guidVersion == other.guidVersion && self.pStream == other.pStream
2895 }
2896}
2897impl ::core::cmp::Eq for VERSIONEDSTREAM {}
2898impl ::core::default::Default for VERSIONEDSTREAM {
2899 fn default() -> Self {
2900 unsafe { ::core::mem::zeroed() }
2901 }
2902}
2903#[cfg(feature = "implement")]
2904::core::include!("impl.rs");