1#[inline]
7pub unsafe fn BuildDisplayTable<P3>(
8 lpallocatebuffer: LPALLOCATEBUFFER,
9 lpallocatemore: LPALLOCATEMORE,
10 lpfreebuffer: LPFREEBUFFER,
11 lpmalloc: P3,
12 hinstance: windows::Win32::Foundation::HINSTANCE,
13 cpages: u32,
14 lppage: *mut DTPAGE,
15 ulflags: u32,
16 lpptable: *mut Option<IMAPITable>,
17 lpptbldata: *mut Option<ITableData>,
18) -> windows_core::Result<()>
19where
20 P3: windows_core::Param<windows::Win32::System::Com::IMalloc>,
21{
22 windows_link::link!("mapi32" "system" fn BuildDisplayTable(lpallocatebuffer : LPALLOCATEBUFFER, lpallocatemore : LPALLOCATEMORE, lpfreebuffer : LPFREEBUFFER, lpmalloc : * mut core::ffi::c_void, hinstance : windows::Win32::Foundation:: HINSTANCE, cpages : u32, lppage : *mut DTPAGE, ulflags : u32, lpptable : *mut * mut core::ffi::c_void, lpptbldata : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
23 unsafe {
24 BuildDisplayTable(
25 lpallocatebuffer,
26 lpallocatemore,
27 lpfreebuffer,
28 lpmalloc.param().abi(),
29 hinstance,
30 cpages,
31 lppage as _,
32 ulflags,
33 core::mem::transmute(lpptable),
34 core::mem::transmute(lpptbldata),
35 )
36 .ok()
37 }
38}
39#[inline]
40pub unsafe fn ChangeIdleRoutine(
41 ftg: *mut core::ffi::c_void,
42 lpfnidle: PFNIDLE,
43 lpvidleparam: *mut core::ffi::c_void,
44 priidle: i16,
45 csecidle: u32,
46 iroidle: u16,
47 ircidle: u16,
48) {
49 windows_link::link!("mapi32" "system" fn ChangeIdleRoutine(ftg : *mut core::ffi::c_void, lpfnidle : PFNIDLE, lpvidleparam : *mut core::ffi::c_void, priidle : i16, csecidle : u32, iroidle : u16, ircidle : u16));
50 unsafe {
51 ChangeIdleRoutine(
52 ftg as _,
53 lpfnidle,
54 lpvidleparam as _,
55 priidle,
56 csecidle,
57 iroidle,
58 ircidle,
59 )
60 }
61}
62#[inline]
63pub unsafe fn CloseIMsgSession(lpmsgsess: windows::Win32::Storage::Imapi::LPMSGSESS) {
64 windows_link::link!("mapi32" "system" fn CloseIMsgSession(lpmsgsess : windows::Win32::Storage::Imapi:: LPMSGSESS));
65 unsafe { CloseIMsgSession(lpmsgsess) }
66}
67#[inline]
68pub unsafe fn CreateIProp(
69 lpinterface: *mut windows_core::GUID,
70 lpallocatebuffer: LPALLOCATEBUFFER,
71 lpallocatemore: LPALLOCATEMORE,
72 lpfreebuffer: LPFREEBUFFER,
73 lpvreserved: *mut core::ffi::c_void,
74 lpppropdata: *mut Option<IPropData>,
75) -> i32 {
76 windows_link::link!("mapi32" "system" fn CreateIProp(lpinterface : *mut windows_core::GUID, lpallocatebuffer : LPALLOCATEBUFFER, lpallocatemore : LPALLOCATEMORE, lpfreebuffer : LPFREEBUFFER, lpvreserved : *mut core::ffi::c_void, lpppropdata : *mut * mut core::ffi::c_void) -> i32);
77 unsafe {
78 CreateIProp(
79 lpinterface as _,
80 lpallocatebuffer,
81 lpallocatemore,
82 lpfreebuffer,
83 lpvreserved as _,
84 core::mem::transmute(lpppropdata),
85 )
86 }
87}
88#[inline]
89pub unsafe fn CreateTable(
90 lpinterface: *mut windows_core::GUID,
91 lpallocatebuffer: LPALLOCATEBUFFER,
92 lpallocatemore: LPALLOCATEMORE,
93 lpfreebuffer: LPFREEBUFFER,
94 lpvreserved: *mut core::ffi::c_void,
95 ultabletype: u32,
96 ulproptagindexcolumn: u32,
97 lpsproptagarraycolumns: *mut SPropTagArray,
98 lpptabledata: *mut Option<ITableData>,
99) -> i32 {
100 windows_link::link!("mapi32" "system" fn CreateTable(lpinterface : *mut windows_core::GUID, lpallocatebuffer : LPALLOCATEBUFFER, lpallocatemore : LPALLOCATEMORE, lpfreebuffer : LPFREEBUFFER, lpvreserved : *mut core::ffi::c_void, ultabletype : u32, ulproptagindexcolumn : u32, lpsproptagarraycolumns : *mut SPropTagArray, lpptabledata : *mut * mut core::ffi::c_void) -> i32);
101 unsafe {
102 CreateTable(
103 lpinterface as _,
104 lpallocatebuffer,
105 lpallocatemore,
106 lpfreebuffer,
107 lpvreserved as _,
108 ultabletype,
109 ulproptagindexcolumn,
110 lpsproptagarraycolumns as _,
111 core::mem::transmute(lpptabledata),
112 )
113 }
114}
115#[inline]
116pub unsafe fn DeinitMapiUtil() {
117 windows_link::link!("mapi32" "system" fn DeinitMapiUtil());
118 unsafe { DeinitMapiUtil() }
119}
120#[inline]
121pub unsafe fn DeregisterIdleRoutine(ftg: *mut core::ffi::c_void) {
122 windows_link::link!("mapi32" "system" fn DeregisterIdleRoutine(ftg : *mut core::ffi::c_void));
123 unsafe { DeregisterIdleRoutine(ftg as _) }
124}
125#[inline]
126pub unsafe fn EnableIdleRoutine(ftg: *mut core::ffi::c_void, fenable: bool) {
127 windows_link::link!("mapi32" "system" fn EnableIdleRoutine(ftg : *mut core::ffi::c_void, fenable : windows_core::BOOL));
128 unsafe { EnableIdleRoutine(ftg as _, fenable.into()) }
129}
130#[inline]
131pub unsafe fn FBadColumnSet(lpptacols: *mut SPropTagArray) -> u32 {
132 windows_link::link!("mapi32" "system" fn FBadColumnSet(lpptacols : *mut SPropTagArray) -> u32);
133 unsafe { FBadColumnSet(lpptacols as _) }
134}
135#[inline]
136pub unsafe fn FBadEntryList(lpentrylist: *mut SBinaryArray) -> windows_core::BOOL {
137 windows_link::link!("mapi32" "system" fn FBadEntryList(lpentrylist : *mut SBinaryArray) -> windows_core::BOOL);
138 unsafe { FBadEntryList(lpentrylist as _) }
139}
140#[inline]
141pub unsafe fn FBadProp(lpprop: *mut SPropValue) -> u32 {
142 windows_link::link!("mapi32" "system" fn FBadProp(lpprop : *mut SPropValue) -> u32);
143 unsafe { FBadProp(lpprop as _) }
144}
145#[inline]
146pub unsafe fn FBadPropTag(ulproptag: u32) -> u32 {
147 windows_link::link!("mapi32" "system" fn FBadPropTag(ulproptag : u32) -> u32);
148 unsafe { FBadPropTag(ulproptag) }
149}
150#[inline]
151pub unsafe fn FBadRestriction(lpres: *mut SRestriction) -> u32 {
152 windows_link::link!("mapi32" "system" fn FBadRestriction(lpres : *mut SRestriction) -> u32);
153 unsafe { FBadRestriction(lpres as _) }
154}
155#[inline]
156pub unsafe fn FBadRglpNameID(lppnameid: *mut *mut MAPINAMEID, cnames: u32) -> windows_core::BOOL {
157 windows_link::link!("mapi32" "system" fn FBadRglpNameID(lppnameid : *mut *mut MAPINAMEID, cnames : u32) -> windows_core::BOOL);
158 unsafe { FBadRglpNameID(lppnameid as _, cnames) }
159}
160#[inline]
161pub unsafe fn FBadRglpszW(
162 lppszw: *const windows_core::PCWSTR,
163 cstrings: u32,
164) -> windows_core::BOOL {
165 windows_link::link!("mapi32" "system" fn FBadRglpszW(lppszw : *const windows_core::PCWSTR, cstrings : u32) -> windows_core::BOOL);
166 unsafe { FBadRglpszW(lppszw, cstrings) }
167}
168#[inline]
169pub unsafe fn FBadRow(lprow: *mut SRow) -> u32 {
170 windows_link::link!("mapi32" "system" fn FBadRow(lprow : *mut SRow) -> u32);
171 unsafe { FBadRow(lprow as _) }
172}
173#[inline]
174pub unsafe fn FBadRowSet(lprowset: *mut SRowSet) -> windows_core::BOOL {
175 windows_link::link!("mapi32" "system" fn FBadRowSet(lprowset : *mut SRowSet) -> windows_core::BOOL);
176 unsafe { FBadRowSet(lprowset as _) }
177}
178#[inline]
179pub unsafe fn FBadSortOrderSet(lpsos: *mut SSortOrderSet) -> u32 {
180 windows_link::link!("mapi32" "system" fn FBadSortOrderSet(lpsos : *mut SSortOrderSet) -> u32);
181 unsafe { FBadSortOrderSet(lpsos as _) }
182}
183#[inline]
184pub unsafe fn FBinFromHex(lpsz: *const i8, lpb: *mut u8) -> windows_core::BOOL {
185 windows_link::link!("mapi32" "system" fn FBinFromHex(lpsz : *const i8, lpb : *mut u8) -> windows_core::BOOL);
186 unsafe { FBinFromHex(lpsz, lpb as _) }
187}
188#[inline]
189pub unsafe fn FEqualNames(
190 lpname1: *mut MAPINAMEID,
191 lpname2: *mut MAPINAMEID,
192) -> windows_core::BOOL {
193 windows_link::link!("mapi32" "system" fn FEqualNames(lpname1 : *mut MAPINAMEID, lpname2 : *mut MAPINAMEID) -> windows_core::BOOL);
194 unsafe { FEqualNames(lpname1 as _, lpname2 as _) }
195}
196#[inline]
197pub unsafe fn FPropCompareProp(
198 lpspropvalue1: *mut SPropValue,
199 ulrelop: u32,
200 lpspropvalue2: *mut SPropValue,
201) -> windows_core::BOOL {
202 windows_link::link!("mapi32" "system" fn FPropCompareProp(lpspropvalue1 : *mut SPropValue, ulrelop : u32, lpspropvalue2 : *mut SPropValue) -> windows_core::BOOL);
203 unsafe { FPropCompareProp(lpspropvalue1 as _, ulrelop, lpspropvalue2 as _) }
204}
205#[inline]
206pub unsafe fn FPropContainsProp(
207 lpspropvaluedst: *mut SPropValue,
208 lpspropvaluesrc: *mut SPropValue,
209 ulfuzzylevel: u32,
210) -> windows_core::BOOL {
211 windows_link::link!("mapi32" "system" fn FPropContainsProp(lpspropvaluedst : *mut SPropValue, lpspropvaluesrc : *mut SPropValue, ulfuzzylevel : u32) -> windows_core::BOOL);
212 unsafe { FPropContainsProp(lpspropvaluedst as _, lpspropvaluesrc as _, ulfuzzylevel) }
213}
214#[inline]
215pub unsafe fn FPropExists<P0>(lpmapiprop: P0, ulproptag: u32) -> windows_core::BOOL
216where
217 P0: windows_core::Param<IMAPIProp>,
218{
219 windows_link::link!("mapi32" "system" fn FPropExists(lpmapiprop : * mut core::ffi::c_void, ulproptag : u32) -> windows_core::BOOL);
220 unsafe { FPropExists(lpmapiprop.param().abi(), ulproptag) }
221}
222#[inline]
223pub unsafe fn FreePadrlist(lpadrlist: *mut ADRLIST) {
224 windows_link::link!("mapi32" "system" fn FreePadrlist(lpadrlist : *mut ADRLIST));
225 unsafe { FreePadrlist(lpadrlist as _) }
226}
227#[inline]
228pub unsafe fn FreeProws(lprows: *mut SRowSet) {
229 windows_link::link!("mapi32" "system" fn FreeProws(lprows : *mut SRowSet));
230 unsafe { FreeProws(lprows as _) }
231}
232#[inline]
233pub unsafe fn FtAddFt(
234 ftaddend1: windows::Win32::Foundation::FILETIME,
235 ftaddend2: windows::Win32::Foundation::FILETIME,
236) -> windows::Win32::Foundation::FILETIME {
237 windows_link::link!("mapi32" "system" fn FtAddFt(ftaddend1 : windows::Win32::Foundation:: FILETIME, ftaddend2 : windows::Win32::Foundation:: FILETIME) -> windows::Win32::Foundation:: FILETIME);
238 unsafe {
239 FtAddFt(
240 core::mem::transmute(ftaddend1),
241 core::mem::transmute(ftaddend2),
242 )
243 }
244}
245#[inline]
246pub unsafe fn FtMulDw(
247 ftmultiplier: u32,
248 ftmultiplicand: windows::Win32::Foundation::FILETIME,
249) -> windows::Win32::Foundation::FILETIME {
250 windows_link::link!("mapi32" "system" fn FtMulDw(ftmultiplier : u32, ftmultiplicand : windows::Win32::Foundation:: FILETIME) -> windows::Win32::Foundation:: FILETIME);
251 unsafe { FtMulDw(ftmultiplier, core::mem::transmute(ftmultiplicand)) }
252}
253#[inline]
254pub unsafe fn FtMulDwDw(
255 ftmultiplicand: u32,
256 ftmultiplier: u32,
257) -> windows::Win32::Foundation::FILETIME {
258 windows_link::link!("mapi32" "system" fn FtMulDwDw(ftmultiplicand : u32, ftmultiplier : u32) -> windows::Win32::Foundation:: FILETIME);
259 unsafe { FtMulDwDw(ftmultiplicand, ftmultiplier) }
260}
261#[inline]
262pub unsafe fn FtNegFt(
263 ft: windows::Win32::Foundation::FILETIME,
264) -> windows::Win32::Foundation::FILETIME {
265 windows_link::link!("mapi32" "system" fn FtNegFt(ft : windows::Win32::Foundation:: FILETIME) -> windows::Win32::Foundation:: FILETIME);
266 unsafe { FtNegFt(core::mem::transmute(ft)) }
267}
268#[inline]
269pub unsafe fn FtSubFt(
270 ftminuend: windows::Win32::Foundation::FILETIME,
271 ftsubtrahend: windows::Win32::Foundation::FILETIME,
272) -> windows::Win32::Foundation::FILETIME {
273 windows_link::link!("mapi32" "system" fn FtSubFt(ftminuend : windows::Win32::Foundation:: FILETIME, ftsubtrahend : windows::Win32::Foundation:: FILETIME) -> windows::Win32::Foundation:: FILETIME);
274 unsafe {
275 FtSubFt(
276 core::mem::transmute(ftminuend),
277 core::mem::transmute(ftsubtrahend),
278 )
279 }
280}
281#[inline]
282pub unsafe fn FtgRegisterIdleRoutine(
283 lpfnidle: PFNIDLE,
284 lpvidleparam: *mut core::ffi::c_void,
285 priidle: i16,
286 csecidle: u32,
287 iroidle: u16,
288) -> *mut core::ffi::c_void {
289 windows_link::link!("mapi32" "system" fn FtgRegisterIdleRoutine(lpfnidle : PFNIDLE, lpvidleparam : *mut core::ffi::c_void, priidle : i16, csecidle : u32, iroidle : u16) -> *mut core::ffi::c_void);
290 unsafe { FtgRegisterIdleRoutine(lpfnidle, lpvidleparam as _, priidle, csecidle, iroidle) }
291}
292#[inline]
293pub unsafe fn GetAttribIMsgOnIStg(
294 lpobject: *mut core::ffi::c_void,
295 lpproptagarray: *mut SPropTagArray,
296 lpppropattrarray: *mut *mut SPropAttrArray,
297) -> windows_core::Result<()> {
298 windows_link::link!("mapi32" "system" fn GetAttribIMsgOnIStg(lpobject : *mut core::ffi::c_void, lpproptagarray : *mut SPropTagArray, lpppropattrarray : *mut *mut SPropAttrArray) -> windows_core::HRESULT);
299 unsafe { GetAttribIMsgOnIStg(lpobject as _, lpproptagarray as _, lpppropattrarray as _).ok() }
300}
301#[inline]
302pub unsafe fn HexFromBin(lpb: *mut u8, cb: i32, lpsz: *const i8) {
303 windows_link::link!("mapi32" "system" fn HexFromBin(lpb : *mut u8, cb : i32, lpsz : *const i8));
304 unsafe { HexFromBin(lpb as _, cb, lpsz) }
305}
306#[inline]
307pub unsafe fn HrAddColumns<P0>(
308 lptbl: P0,
309 lpproptagcolumnsnew: *mut SPropTagArray,
310 lpallocatebuffer: LPALLOCATEBUFFER,
311 lpfreebuffer: LPFREEBUFFER,
312) -> windows_core::Result<()>
313where
314 P0: windows_core::Param<IMAPITable>,
315{
316 windows_link::link!("mapi32" "system" fn HrAddColumns(lptbl : * mut core::ffi::c_void, lpproptagcolumnsnew : *mut SPropTagArray, lpallocatebuffer : LPALLOCATEBUFFER, lpfreebuffer : LPFREEBUFFER) -> windows_core::HRESULT);
317 unsafe {
318 HrAddColumns(
319 lptbl.param().abi(),
320 lpproptagcolumnsnew as _,
321 lpallocatebuffer,
322 lpfreebuffer,
323 )
324 .ok()
325 }
326}
327#[inline]
328pub unsafe fn HrAddColumnsEx<P0>(
329 lptbl: P0,
330 lpproptagcolumnsnew: *mut SPropTagArray,
331 lpallocatebuffer: LPALLOCATEBUFFER,
332 lpfreebuffer: LPFREEBUFFER,
333 lpfnfiltercolumns: isize,
334) -> windows_core::Result<()>
335where
336 P0: windows_core::Param<IMAPITable>,
337{
338 windows_link::link!("mapi32" "system" fn HrAddColumnsEx(lptbl : * mut core::ffi::c_void, lpproptagcolumnsnew : *mut SPropTagArray, lpallocatebuffer : LPALLOCATEBUFFER, lpfreebuffer : LPFREEBUFFER, lpfnfiltercolumns : isize) -> windows_core::HRESULT);
339 unsafe {
340 HrAddColumnsEx(
341 lptbl.param().abi(),
342 lpproptagcolumnsnew as _,
343 lpallocatebuffer,
344 lpfreebuffer,
345 lpfnfiltercolumns,
346 )
347 .ok()
348 }
349}
350#[inline]
351pub unsafe fn HrAllocAdviseSink(
352 lpfncallback: LPNOTIFCALLBACK,
353 lpvcontext: *mut core::ffi::c_void,
354 lppadvisesink: *mut Option<IMAPIAdviseSink>,
355) -> windows_core::Result<()> {
356 windows_link::link!("mapi32" "system" fn HrAllocAdviseSink(lpfncallback : LPNOTIFCALLBACK, lpvcontext : *mut core::ffi::c_void, lppadvisesink : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
357 unsafe {
358 HrAllocAdviseSink(
359 lpfncallback,
360 lpvcontext as _,
361 core::mem::transmute(lppadvisesink),
362 )
363 .ok()
364 }
365}
366#[inline]
367pub unsafe fn HrCompareABEntryIDsWithExchangeContext<P0, P2>(
368 pmsess: P0,
369 pemsmdbuid: *const MAPIUID,
370 paddrbook: P2,
371 cbentryid1: u32,
372 lpentryid1: *mut ENTRYID,
373 cbentryid2: u32,
374 lpentryid2: *mut ENTRYID,
375 ulflags: u32,
376 lpulresult: *mut u32,
377) -> windows_core::Result<()>
378where
379 P0: windows_core::Param<IMAPISession>,
380 P2: windows_core::Param<IAddrBook>,
381{
382 windows_link::link!("olmapi32" "system" fn HrCompareABEntryIDsWithExchangeContext(pmsess : * mut core::ffi::c_void, pemsmdbuid : *const MAPIUID, paddrbook : * mut core::ffi::c_void, cbentryid1 : u32, lpentryid1 : *mut ENTRYID, cbentryid2 : u32, lpentryid2 : *mut ENTRYID, ulflags : u32, lpulresult : *mut u32) -> windows_core::HRESULT);
383 unsafe {
384 HrCompareABEntryIDsWithExchangeContext(
385 pmsess.param().abi(),
386 pemsmdbuid,
387 paddrbook.param().abi(),
388 cbentryid1,
389 lpentryid1 as _,
390 cbentryid2,
391 lpentryid2 as _,
392 ulflags,
393 lpulresult as _,
394 )
395 .ok()
396 }
397}
398#[inline]
399pub unsafe fn HrComposeEID<P0>(
400 lpsession: P0,
401 cbstorerecordkey: u32,
402 lpstorerecordkey: *mut u8,
403 cbmsgentryid: u32,
404 lpmsgentryid: *mut ENTRYID,
405 lpcbeid: *mut u32,
406 lppentryid: *mut *mut ENTRYID,
407) -> windows_core::Result<()>
408where
409 P0: windows_core::Param<IMAPISession>,
410{
411 windows_link::link!("mapi32" "system" fn HrComposeEID(lpsession : * mut core::ffi::c_void, cbstorerecordkey : u32, lpstorerecordkey : *mut u8, cbmsgentryid : u32, lpmsgentryid : *mut ENTRYID, lpcbeid : *mut u32, lppentryid : *mut *mut ENTRYID) -> windows_core::HRESULT);
412 unsafe {
413 HrComposeEID(
414 lpsession.param().abi(),
415 cbstorerecordkey,
416 lpstorerecordkey as _,
417 cbmsgentryid,
418 lpmsgentryid as _,
419 lpcbeid as _,
420 lppentryid as _,
421 )
422 .ok()
423 }
424}
425#[inline]
426pub unsafe fn HrComposeMsgID<P0>(
427 lpsession: P0,
428 cbstoresearchkey: u32,
429 pstoresearchkey: *mut u8,
430 cbmsgentryid: u32,
431 lpmsgentryid: *mut ENTRYID,
432 lpszmsgid: *const *const i8,
433) -> windows_core::Result<()>
434where
435 P0: windows_core::Param<IMAPISession>,
436{
437 windows_link::link!("mapi32" "system" fn HrComposeMsgID(lpsession : * mut core::ffi::c_void, cbstoresearchkey : u32, pstoresearchkey : *mut u8, cbmsgentryid : u32, lpmsgentryid : *mut ENTRYID, lpszmsgid : *const *const i8) -> windows_core::HRESULT);
438 unsafe {
439 HrComposeMsgID(
440 lpsession.param().abi(),
441 cbstoresearchkey,
442 pstoresearchkey as _,
443 cbmsgentryid,
444 lpmsgentryid as _,
445 lpszmsgid,
446 )
447 .ok()
448 }
449}
450#[inline]
451pub unsafe fn HrDecomposeEID<P0>(
452 lpsession: P0,
453 cbentryid: u32,
454 lpentryid: *mut ENTRYID,
455 lpcbstoreentryid: *mut u32,
456 lppstoreentryid: *mut *mut ENTRYID,
457 lpcbmsgentryid: *mut u32,
458 lppmsgentryid: *mut *mut ENTRYID,
459) -> windows_core::Result<()>
460where
461 P0: windows_core::Param<IMAPISession>,
462{
463 windows_link::link!("mapi32" "system" fn HrDecomposeEID(lpsession : * mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpcbstoreentryid : *mut u32, lppstoreentryid : *mut *mut ENTRYID, lpcbmsgentryid : *mut u32, lppmsgentryid : *mut *mut ENTRYID) -> windows_core::HRESULT);
464 unsafe {
465 HrDecomposeEID(
466 lpsession.param().abi(),
467 cbentryid,
468 lpentryid as _,
469 lpcbstoreentryid as _,
470 lppstoreentryid as _,
471 lpcbmsgentryid as _,
472 lppmsgentryid as _,
473 )
474 .ok()
475 }
476}
477#[inline]
478pub unsafe fn HrDecomposeMsgID<P0>(
479 lpsession: P0,
480 lpszmsgid: *const i8,
481 lpcbstoreentryid: *mut u32,
482 lppstoreentryid: *mut *mut ENTRYID,
483 lppcbmsgentryid: *mut u32,
484 lppmsgentryid: *mut *mut ENTRYID,
485) -> windows_core::Result<()>
486where
487 P0: windows_core::Param<IMAPISession>,
488{
489 windows_link::link!("mapi32" "system" fn HrDecomposeMsgID(lpsession : * mut core::ffi::c_void, lpszmsgid : *const i8, lpcbstoreentryid : *mut u32, lppstoreentryid : *mut *mut ENTRYID, lppcbmsgentryid : *mut u32, lppmsgentryid : *mut *mut ENTRYID) -> windows_core::HRESULT);
490 unsafe {
491 HrDecomposeMsgID(
492 lpsession.param().abi(),
493 lpszmsgid,
494 lpcbstoreentryid as _,
495 lppstoreentryid as _,
496 lppcbmsgentryid as _,
497 lppmsgentryid as _,
498 )
499 .ok()
500 }
501}
502#[inline]
503pub unsafe fn HrDispatchNotifications(ulflags: u32) -> windows_core::Result<()> {
504 windows_link::link!("mapi32" "system" fn HrDispatchNotifications(ulflags : u32) -> windows_core::HRESULT);
505 unsafe { HrDispatchNotifications(ulflags).ok() }
506}
507#[inline]
508pub unsafe fn HrDoABDetailsWithExchangeContext<P0, P2>(
509 pmsess: P0,
510 pemsmdbuid: *const MAPIUID,
511 paddrbook: P2,
512 lpuluiparam: *mut usize,
513 lpfndismiss: LPFNDISMISS,
514 lpvdismisscontext: *mut core::ffi::c_void,
515 cbentryid: u32,
516 lpentryid: *mut ENTRYID,
517 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
518 lpvbuttoncontext: *mut core::ffi::c_void,
519 lpszbuttontext: *mut i8,
520 ulflags: u32,
521) -> windows_core::Result<()>
522where
523 P0: windows_core::Param<IMAPISession>,
524 P2: windows_core::Param<IAddrBook>,
525{
526 windows_link::link!("olmapi32" "system" fn HrDoABDetailsWithExchangeContext(pmsess : * mut core::ffi::c_void, pemsmdbuid : *const MAPIUID, paddrbook : * mut core::ffi::c_void, lpuluiparam : *mut usize, lpfndismiss : LPFNDISMISS, lpvdismisscontext : *mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpfbuttoncallback : windows::Win32::System::AddressBook:: LPFNBUTTON, lpvbuttoncontext : *mut core::ffi::c_void, lpszbuttontext : *mut i8, ulflags : u32) -> windows_core::HRESULT);
527 unsafe {
528 HrDoABDetailsWithExchangeContext(
529 pmsess.param().abi(),
530 pemsmdbuid,
531 paddrbook.param().abi(),
532 lpuluiparam as _,
533 lpfndismiss,
534 lpvdismisscontext as _,
535 cbentryid,
536 lpentryid as _,
537 lpfbuttoncallback,
538 lpvbuttoncontext as _,
539 lpszbuttontext as _,
540 ulflags,
541 )
542 .ok()
543 }
544}
545#[inline]
546pub unsafe fn HrDoABDetailsWithProviderUID<P1>(
547 pemsabpuid: *const MAPIUID,
548 paddrbook: P1,
549 lpuluiparam: *mut usize,
550 lpfndismiss: LPFNDISMISS,
551 lpvdismisscontext: *mut core::ffi::c_void,
552 cbentryid: u32,
553 lpentryid: *mut ENTRYID,
554 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
555 lpvbuttoncontext: *mut core::ffi::c_void,
556 lpszbuttontext: *mut i8,
557 ulflags: u32,
558) -> windows_core::Result<()>
559where
560 P1: windows_core::Param<IAddrBook>,
561{
562 windows_link::link!("olmapi32" "system" fn HrDoABDetailsWithProviderUID(pemsabpuid : *const MAPIUID, paddrbook : * mut core::ffi::c_void, lpuluiparam : *mut usize, lpfndismiss : LPFNDISMISS, lpvdismisscontext : *mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpfbuttoncallback : windows::Win32::System::AddressBook:: LPFNBUTTON, lpvbuttoncontext : *mut core::ffi::c_void, lpszbuttontext : *mut i8, ulflags : u32) -> windows_core::HRESULT);
563 unsafe {
564 HrDoABDetailsWithProviderUID(
565 pemsabpuid,
566 paddrbook.param().abi(),
567 lpuluiparam as _,
568 lpfndismiss,
569 lpvdismisscontext as _,
570 cbentryid,
571 lpentryid as _,
572 lpfbuttoncallback,
573 lpvbuttoncontext as _,
574 lpszbuttontext as _,
575 ulflags,
576 )
577 .ok()
578 }
579}
580#[inline]
581pub unsafe fn HrEntryIDFromSz(
582 lpsz: *const i8,
583 lpcb: *mut u32,
584 lppentryid: *mut *mut ENTRYID,
585) -> windows_core::Result<()> {
586 windows_link::link!("mapi32" "system" fn HrEntryIDFromSz(lpsz : *const i8, lpcb : *mut u32, lppentryid : *mut *mut ENTRYID) -> windows_core::HRESULT);
587 unsafe { HrEntryIDFromSz(lpsz, lpcb as _, lppentryid as _).ok() }
588}
589#[inline]
590pub unsafe fn HrGetGALFromEmsmdbUID<P0, P1>(
591 psess: P0,
592 lpadrbook: P1,
593 pemsmdbuid: *const MAPIUID,
594 lpcbeid: *mut u32,
595 lppeid: *mut *mut ENTRYID,
596) -> windows_core::Result<()>
597where
598 P0: windows_core::Param<IMAPISession>,
599 P1: windows_core::Param<IAddrBook>,
600{
601 windows_link::link!("olmapi32" "system" fn HrGetGALFromEmsmdbUID(psess : * mut core::ffi::c_void, lpadrbook : * mut core::ffi::c_void, pemsmdbuid : *const MAPIUID, lpcbeid : *mut u32, lppeid : *mut *mut ENTRYID) -> windows_core::HRESULT);
602 unsafe {
603 HrGetGALFromEmsmdbUID(
604 psess.param().abi(),
605 lpadrbook.param().abi(),
606 pemsmdbuid,
607 lpcbeid as _,
608 lppeid as _,
609 )
610 .ok()
611 }
612}
613#[inline]
614pub unsafe fn HrGetOneProp<P0>(
615 lpmapiprop: P0,
616 ulproptag: u32,
617 lppprop: *mut *mut SPropValue,
618) -> windows_core::Result<()>
619where
620 P0: windows_core::Param<IMAPIProp>,
621{
622 windows_link::link!("mapi32" "system" fn HrGetOneProp(lpmapiprop : * mut core::ffi::c_void, ulproptag : u32, lppprop : *mut *mut SPropValue) -> windows_core::HRESULT);
623 unsafe { HrGetOneProp(lpmapiprop.param().abi(), ulproptag, lppprop as _).ok() }
624}
625#[inline]
626pub unsafe fn HrIStorageFromStream<P0>(
627 lpunkin: P0,
628 lpinterface: *mut windows_core::GUID,
629 ulflags: u32,
630 lppstorageout: *mut Option<windows::Win32::System::Com::StructuredStorage::IStorage>,
631) -> windows_core::Result<()>
632where
633 P0: windows_core::Param<windows_core::IUnknown>,
634{
635 windows_link::link!("mapi32" "system" fn HrIStorageFromStream(lpunkin : * mut core::ffi::c_void, lpinterface : *mut windows_core::GUID, ulflags : u32, lppstorageout : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
636 unsafe {
637 HrIStorageFromStream(
638 lpunkin.param().abi(),
639 lpinterface as _,
640 ulflags,
641 core::mem::transmute(lppstorageout),
642 )
643 .ok()
644 }
645}
646#[inline]
647pub unsafe fn HrOpenABEntryUsingDefaultContext<P0, P1>(
648 pmsess: P0,
649 paddrbook: P1,
650 cbentryid: u32,
651 lpentryid: *mut ENTRYID,
652 lpinterface: *mut windows_core::GUID,
653 ulflags: u32,
654 lpulobjtype: *mut u32,
655 lppunk: *mut Option<windows_core::IUnknown>,
656) -> windows_core::Result<()>
657where
658 P0: windows_core::Param<IMAPISession>,
659 P1: windows_core::Param<IAddrBook>,
660{
661 windows_link::link!("olmapi32" "system" fn HrOpenABEntryUsingDefaultContext(pmsess : * mut core::ffi::c_void, paddrbook : * mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpinterface : *mut windows_core::GUID, ulflags : u32, lpulobjtype : *mut u32, lppunk : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
662 unsafe {
663 HrOpenABEntryUsingDefaultContext(
664 pmsess.param().abi(),
665 paddrbook.param().abi(),
666 cbentryid,
667 lpentryid as _,
668 lpinterface as _,
669 ulflags,
670 lpulobjtype as _,
671 core::mem::transmute(lppunk),
672 )
673 .ok()
674 }
675}
676#[inline]
677pub unsafe fn HrOpenABEntryWithExchangeContext<P0, P2>(
678 pmsess: P0,
679 pemsmdbuid: *const MAPIUID,
680 paddrbook: P2,
681 cbentryid: u32,
682 lpentryid: *mut ENTRYID,
683 lpinterface: *mut windows_core::GUID,
684 ulflags: u32,
685 lpulobjtype: *mut u32,
686 lppunk: *mut Option<windows_core::IUnknown>,
687) -> windows_core::Result<()>
688where
689 P0: windows_core::Param<IMAPISession>,
690 P2: windows_core::Param<IAddrBook>,
691{
692 windows_link::link!("olmapi32" "system" fn HrOpenABEntryWithExchangeContext(pmsess : * mut core::ffi::c_void, pemsmdbuid : *const MAPIUID, paddrbook : * mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpinterface : *mut windows_core::GUID, ulflags : u32, lpulobjtype : *mut u32, lppunk : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
693 unsafe {
694 HrOpenABEntryWithExchangeContext(
695 pmsess.param().abi(),
696 pemsmdbuid,
697 paddrbook.param().abi(),
698 cbentryid,
699 lpentryid as _,
700 lpinterface as _,
701 ulflags,
702 lpulobjtype as _,
703 core::mem::transmute(lppunk),
704 )
705 .ok()
706 }
707}
708#[inline]
709pub unsafe fn HrOpenABEntryWithProviderUID<P1>(
710 pemsabpuid: *const MAPIUID,
711 paddrbook: P1,
712 cbentryid: u32,
713 lpentryid: *mut ENTRYID,
714 lpinterface: *mut windows_core::GUID,
715 ulflags: u32,
716 lpulobjtype: *mut u32,
717 lppunk: *mut Option<windows_core::IUnknown>,
718) -> windows_core::Result<()>
719where
720 P1: windows_core::Param<IAddrBook>,
721{
722 windows_link::link!("olmapi32" "system" fn HrOpenABEntryWithProviderUID(pemsabpuid : *const MAPIUID, paddrbook : * mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpinterface : *mut windows_core::GUID, ulflags : u32, lpulobjtype : *mut u32, lppunk : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
723 unsafe {
724 HrOpenABEntryWithProviderUID(
725 pemsabpuid,
726 paddrbook.param().abi(),
727 cbentryid,
728 lpentryid as _,
729 lpinterface as _,
730 ulflags,
731 lpulobjtype as _,
732 core::mem::transmute(lppunk),
733 )
734 .ok()
735 }
736}
737#[inline]
738pub unsafe fn HrOpenABEntryWithProviderUIDSupport<P1>(
739 pemsabpuid: *const MAPIUID,
740 lpsup: P1,
741 cbentryid: u32,
742 lpentryid: *mut ENTRYID,
743 lpinterface: *mut windows_core::GUID,
744 ulflags: u32,
745 lpulobjtype: *mut u32,
746 lppunk: *mut Option<windows_core::IUnknown>,
747) -> windows_core::Result<()>
748where
749 P1: windows_core::Param<IMAPISupport>,
750{
751 windows_link::link!("olmapi32" "system" fn HrOpenABEntryWithProviderUIDSupport(pemsabpuid : *const MAPIUID, lpsup : * mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpinterface : *mut windows_core::GUID, ulflags : u32, lpulobjtype : *mut u32, lppunk : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
752 unsafe {
753 HrOpenABEntryWithProviderUIDSupport(
754 pemsabpuid,
755 lpsup.param().abi(),
756 cbentryid,
757 lpentryid as _,
758 lpinterface as _,
759 ulflags,
760 lpulobjtype as _,
761 core::mem::transmute(lppunk),
762 )
763 .ok()
764 }
765}
766#[inline]
767pub unsafe fn HrOpenABEntryWithResolvedRow<P1>(
768 prwresolved: *mut SRow,
769 paddrbook: P1,
770 cbentryid: u32,
771 lpentryid: *mut ENTRYID,
772 lpinterface: *mut windows_core::GUID,
773 ulflags: u32,
774 lpulobjtype: *mut u32,
775 lppunk: *mut Option<windows_core::IUnknown>,
776) -> windows_core::Result<()>
777where
778 P1: windows_core::Param<IAddrBook>,
779{
780 windows_link::link!("olmapi32" "system" fn HrOpenABEntryWithResolvedRow(prwresolved : *mut SRow, paddrbook : * mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpinterface : *mut windows_core::GUID, ulflags : u32, lpulobjtype : *mut u32, lppunk : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
781 unsafe {
782 HrOpenABEntryWithResolvedRow(
783 prwresolved as _,
784 paddrbook.param().abi(),
785 cbentryid,
786 lpentryid as _,
787 lpinterface as _,
788 ulflags,
789 lpulobjtype as _,
790 core::mem::transmute(lppunk),
791 )
792 .ok()
793 }
794}
795#[inline]
796pub unsafe fn HrOpenABEntryWithSupport<P0>(
797 lpsup: P0,
798 cbentryid: u32,
799 lpentryid: *mut ENTRYID,
800 lpinterface: *mut windows_core::GUID,
801 ulflags: u32,
802 lpulobjtype: *mut u32,
803 lppunk: *mut Option<windows_core::IUnknown>,
804) -> windows_core::Result<()>
805where
806 P0: windows_core::Param<IMAPISupport>,
807{
808 windows_link::link!("olmapi32" "system" fn HrOpenABEntryWithSupport(lpsup : * mut core::ffi::c_void, cbentryid : u32, lpentryid : *mut ENTRYID, lpinterface : *mut windows_core::GUID, ulflags : u32, lpulobjtype : *mut u32, lppunk : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
809 unsafe {
810 HrOpenABEntryWithSupport(
811 lpsup.param().abi(),
812 cbentryid,
813 lpentryid as _,
814 lpinterface as _,
815 ulflags,
816 lpulobjtype as _,
817 core::mem::transmute(lppunk),
818 )
819 .ok()
820 }
821}
822#[inline]
823pub unsafe fn HrQueryAllRows<P0>(
824 lptable: P0,
825 lpproptags: *mut SPropTagArray,
826 lprestriction: *mut SRestriction,
827 lpsortorderset: *mut SSortOrderSet,
828 crowsmax: i32,
829 lpprows: *mut *mut SRowSet,
830) -> windows_core::Result<()>
831where
832 P0: windows_core::Param<IMAPITable>,
833{
834 windows_link::link!("mapi32" "system" fn HrQueryAllRows(lptable : * mut core::ffi::c_void, lpproptags : *mut SPropTagArray, lprestriction : *mut SRestriction, lpsortorderset : *mut SSortOrderSet, crowsmax : i32, lpprows : *mut *mut SRowSet) -> windows_core::HRESULT);
835 unsafe {
836 HrQueryAllRows(
837 lptable.param().abi(),
838 lpproptags as _,
839 lprestriction as _,
840 lpsortorderset as _,
841 crowsmax,
842 lpprows as _,
843 )
844 .ok()
845 }
846}
847#[inline]
848pub unsafe fn HrSetOneProp<P0>(lpmapiprop: P0, lpprop: *mut SPropValue) -> windows_core::Result<()>
849where
850 P0: windows_core::Param<IMAPIProp>,
851{
852 windows_link::link!("mapi32" "system" fn HrSetOneProp(lpmapiprop : * mut core::ffi::c_void, lpprop : *mut SPropValue) -> windows_core::HRESULT);
853 unsafe { HrSetOneProp(lpmapiprop.param().abi(), lpprop as _).ok() }
854}
855#[inline]
856pub unsafe fn HrSzFromEntryID(
857 cb: u32,
858 lpentryid: *mut ENTRYID,
859 lpsz: *const *const i8,
860) -> windows_core::Result<()> {
861 windows_link::link!("mapi32" "system" fn HrSzFromEntryID(cb : u32, lpentryid : *mut ENTRYID, lpsz : *const *const i8) -> windows_core::HRESULT);
862 unsafe { HrSzFromEntryID(cb, lpentryid as _, lpsz).ok() }
863}
864#[inline]
865pub unsafe fn HrThisThreadAdviseSink<P0>(lpadvisesink: P0) -> windows_core::Result<IMAPIAdviseSink>
866where
867 P0: windows_core::Param<IMAPIAdviseSink>,
868{
869 windows_link::link!("mapi32" "system" fn HrThisThreadAdviseSink(lpadvisesink : * mut core::ffi::c_void, lppadvisesink : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
870 unsafe {
871 let mut result__ = core::mem::zeroed();
872 HrThisThreadAdviseSink(lpadvisesink.param().abi(), &mut result__)
873 .and_then(|| windows_core::Type::from_abi(result__))
874 }
875}
876#[inline]
877pub unsafe fn HrValidateIPMSubtree<P0>(
878 lpmdb: P0,
879 ulflags: u32,
880 lpcvalues: *mut u32,
881 lppvalues: *mut *mut SPropValue,
882 lpperr: *mut *mut MAPIERROR,
883) -> windows_core::Result<()>
884where
885 P0: windows_core::Param<IMsgStore>,
886{
887 windows_link::link!("mapi32" "system" fn HrValidateIPMSubtree(lpmdb : * mut core::ffi::c_void, ulflags : u32, lpcvalues : *mut u32, lppvalues : *mut *mut SPropValue, lpperr : *mut *mut MAPIERROR) -> windows_core::HRESULT);
888 unsafe {
889 HrValidateIPMSubtree(
890 lpmdb.param().abi(),
891 ulflags,
892 lpcvalues as _,
893 lppvalues as _,
894 lpperr as _,
895 )
896 .ok()
897 }
898}
899#[inline]
900pub unsafe fn HrValidateParameters(
901 emethod: METHODS,
902 ppfirstarg: *mut *mut core::ffi::c_void,
903) -> windows_core::Result<()> {
904 windows_link::link!("olmapi32" "system" fn HrValidateParameters(emethod : METHODS, ppfirstarg : *mut *mut core::ffi::c_void) -> windows_core::HRESULT);
905 unsafe { HrValidateParameters(emethod, ppfirstarg as _).ok() }
906}
907#[inline]
908pub unsafe fn IsBadBoundedStringPtr(
909 lpsz: *const core::ffi::c_void,
910 cchmax: u32,
911) -> windows_core::BOOL {
912 windows_link::link!("mapi32" "system" fn IsBadBoundedStringPtr(lpsz : *const core::ffi::c_void, cchmax : u32) -> windows_core::BOOL);
913 unsafe { IsBadBoundedStringPtr(lpsz, cchmax) }
914}
915#[inline]
916pub unsafe fn LPropCompareProp(
917 lpspropvaluea: *mut SPropValue,
918 lpspropvalueb: *mut SPropValue,
919) -> i32 {
920 windows_link::link!("mapi32" "system" fn LPropCompareProp(lpspropvaluea : *mut SPropValue, lpspropvalueb : *mut SPropValue) -> i32);
921 unsafe { LPropCompareProp(lpspropvaluea as _, lpspropvalueb as _) }
922}
923#[inline]
924pub unsafe fn LpValFindProp(
925 ulproptag: u32,
926 cvalues: u32,
927 lpproparray: *mut SPropValue,
928) -> *mut SPropValue {
929 windows_link::link!("mapi32" "system" fn LpValFindProp(ulproptag : u32, cvalues : u32, lpproparray : *mut SPropValue) -> *mut SPropValue);
930 unsafe { LpValFindProp(ulproptag, cvalues, lpproparray as _) }
931}
932#[inline]
933pub unsafe fn MAPIAddress<P2, P4>(
934 param0: usize,
935 param1: usize,
936 param2: P2,
937 param3: u32,
938 param4: P4,
939 param5: u32,
940 param6: *mut MapiRecipDesc,
941 param7: u32,
942 param8: u32,
943 param9: *mut u32,
944 param10: *mut *mut MapiRecipDesc,
945) -> u32
946where
947 P2: windows_core::Param<windows_core::PCSTR>,
948 P4: windows_core::Param<windows_core::PCSTR>,
949{
950 windows_link::link!("mapi32" "system" fn MAPIAddress(param0 : usize, param1 : usize, param2 : windows_core::PCSTR, param3 : u32, param4 : windows_core::PCSTR, param5 : u32, param6 : *mut MapiRecipDesc, param7 : u32, param8 : u32, param9 : *mut u32, param10 : *mut *mut MapiRecipDesc) -> u32);
951 unsafe {
952 MAPIAddress(
953 param0,
954 param1,
955 param2.param().abi(),
956 param3,
957 param4.param().abi(),
958 param5,
959 param6 as _,
960 param7,
961 param8,
962 param9 as _,
963 param10 as _,
964 )
965 }
966}
967#[inline]
968pub unsafe fn MAPIAdminProfiles(param0: u32) -> windows_core::Result<IProfAdmin> {
969 windows_link::link!("mapi32" "system" fn MAPIAdminProfiles(param0 : u32, param1 : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
970 unsafe {
971 let mut result__ = core::mem::zeroed();
972 MAPIAdminProfiles(param0, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
973 }
974}
975#[inline]
976pub unsafe fn MAPIAllocateBuffer(param0: u32, param1: *mut *mut core::ffi::c_void) -> i32 {
977 windows_link::link!("mapi32" "system" fn MAPIAllocateBuffer(param0 : u32, param1 : *mut *mut core::ffi::c_void) -> i32);
978 unsafe { MAPIAllocateBuffer(param0, param1 as _) }
979}
980#[inline]
981pub unsafe fn MAPIAllocateMore(
982 param0: u32,
983 param1: *mut core::ffi::c_void,
984 param2: *mut *mut core::ffi::c_void,
985) -> i32 {
986 windows_link::link!("mapi32" "system" fn MAPIAllocateMore(param0 : u32, param1 : *mut core::ffi::c_void, param2 : *mut *mut core::ffi::c_void) -> i32);
987 unsafe { MAPIAllocateMore(param0, param1 as _, param2 as _) }
988}
989#[inline]
990pub unsafe fn MAPIDeinitIdle() {
991 windows_link::link!("mapi32" "system" fn MAPIDeinitIdle());
992 unsafe { MAPIDeinitIdle() }
993}
994#[inline]
995pub unsafe fn MAPIDeleteMail<P2>(
996 param0: usize,
997 param1: usize,
998 param2: P2,
999 param3: u32,
1000 param4: u32,
1001) -> u32
1002where
1003 P2: windows_core::Param<windows_core::PCSTR>,
1004{
1005 windows_link::link!("mapi32" "system" fn MAPIDeleteMail(param0 : usize, param1 : usize, param2 : windows_core::PCSTR, param3 : u32, param4 : u32) -> u32);
1006 unsafe { MAPIDeleteMail(param0, param1, param2.param().abi(), param3, param4) }
1007}
1008#[inline]
1009pub unsafe fn MAPIDetails(
1010 param0: usize,
1011 param1: usize,
1012 param2: *mut MapiRecipDesc,
1013 param3: u32,
1014 param4: u32,
1015) -> u32 {
1016 windows_link::link!("mapi32" "system" fn MAPIDetails(param0 : usize, param1 : usize, param2 : *mut MapiRecipDesc, param3 : u32, param4 : u32) -> u32);
1017 unsafe { MAPIDetails(param0, param1, param2 as _, param3, param4) }
1018}
1019#[inline]
1020pub unsafe fn MAPIFindNext<P2, P3, P6>(
1021 param0: usize,
1022 param1: usize,
1023 param2: P2,
1024 param3: P3,
1025 param4: u32,
1026 param5: u32,
1027 param6: P6,
1028) -> u32
1029where
1030 P2: windows_core::Param<windows_core::PCSTR>,
1031 P3: windows_core::Param<windows_core::PCSTR>,
1032 P6: windows_core::Param<windows_core::PCSTR>,
1033{
1034 windows_link::link!("mapi32" "system" fn MAPIFindNext(param0 : usize, param1 : usize, param2 : windows_core::PCSTR, param3 : windows_core::PCSTR, param4 : u32, param5 : u32, param6 : windows_core::PCSTR) -> u32);
1035 unsafe {
1036 MAPIFindNext(
1037 param0,
1038 param1,
1039 param2.param().abi(),
1040 param3.param().abi(),
1041 param4,
1042 param5,
1043 param6.param().abi(),
1044 )
1045 }
1046}
1047#[inline]
1048pub unsafe fn MAPIFreeBuffer(param0: *mut core::ffi::c_void) -> u32 {
1049 windows_link::link!("mapi32" "system" fn MAPIFreeBuffer(param0 : *mut core::ffi::c_void) -> u32);
1050 unsafe { MAPIFreeBuffer(param0 as _) }
1051}
1052#[inline]
1053pub unsafe fn MAPIGetDefaultMalloc() -> Option<windows::Win32::System::Com::IMalloc> {
1054 windows_link::link!("mapi32" "system" fn MAPIGetDefaultMalloc() -> Option < windows::Win32::System::Com:: IMalloc >);
1055 unsafe { MAPIGetDefaultMalloc() }
1056}
1057#[inline]
1058pub unsafe fn MAPIInitIdle(lpvreserved: *mut core::ffi::c_void) -> i32 {
1059 windows_link::link!("mapi32" "system" fn MAPIInitIdle(lpvreserved : *mut core::ffi::c_void) -> i32);
1060 unsafe { MAPIInitIdle(lpvreserved as _) }
1061}
1062#[inline]
1063pub unsafe fn MAPIInitialize(param0: *mut core::ffi::c_void) -> windows_core::Result<()> {
1064 windows_link::link!("mapi32" "system" fn MAPIInitialize(param0 : *mut core::ffi::c_void) -> windows_core::HRESULT);
1065 unsafe { MAPIInitialize(param0 as _).ok() }
1066}
1067#[inline]
1068pub unsafe fn MAPILogoff(param0: usize, param1: usize, param2: u32, param3: u32) -> u32 {
1069 windows_link::link!("mapi32" "system" fn MAPILogoff(param0 : usize, param1 : usize, param2 : u32, param3 : u32) -> u32);
1070 unsafe { MAPILogoff(param0, param1, param2, param3) }
1071}
1072#[inline]
1073pub unsafe fn MAPILogon<P1, P2>(
1074 param0: usize,
1075 param1: P1,
1076 param2: P2,
1077 param3: u32,
1078 param4: u32,
1079 param5: *mut usize,
1080) -> u32
1081where
1082 P1: windows_core::Param<windows_core::PCSTR>,
1083 P2: windows_core::Param<windows_core::PCSTR>,
1084{
1085 windows_link::link!("mapi32" "system" fn MAPILogon(param0 : usize, param1 : windows_core::PCSTR, param2 : windows_core::PCSTR, param3 : u32, param4 : u32, param5 : *mut usize) -> u32);
1086 unsafe {
1087 MAPILogon(
1088 param0,
1089 param1.param().abi(),
1090 param2.param().abi(),
1091 param3,
1092 param4,
1093 param5 as _,
1094 )
1095 }
1096}
1097#[inline]
1098pub unsafe fn MAPILogonEx(
1099 param0: usize,
1100 param1: *mut i8,
1101 param2: *mut i8,
1102 param3: u32,
1103 param4: *mut Option<IMAPISession>,
1104) -> windows_core::Result<()> {
1105 windows_link::link!("mapi32" "system" fn MAPILogonEx(param0 : usize, param1 : *mut i8, param2 : *mut i8, param3 : u32, param4 : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1106 unsafe {
1107 MAPILogonEx(
1108 param0,
1109 param1 as _,
1110 param2 as _,
1111 param3,
1112 core::mem::transmute(param4),
1113 )
1114 .ok()
1115 }
1116}
1117#[inline]
1118pub unsafe fn MAPIOpenFormMgr<P0>(psession: P0) -> windows_core::Result<IMAPIFormMgr>
1119where
1120 P0: windows_core::Param<IMAPISession>,
1121{
1122 windows_link::link!("mapi32" "system" fn MAPIOpenFormMgr(psession : * mut core::ffi::c_void, ppmgr : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1123 unsafe {
1124 let mut result__ = core::mem::zeroed();
1125 MAPIOpenFormMgr(psession.param().abi(), &mut result__)
1126 .and_then(|| windows_core::Type::from_abi(result__))
1127 }
1128}
1129#[inline]
1130pub unsafe fn MAPIOpenLocalFormContainer() -> windows_core::Result<IMAPIFormContainer> {
1131 windows_link::link!("mapi32" "system" fn MAPIOpenLocalFormContainer(ppfcnt : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1132 unsafe {
1133 let mut result__ = core::mem::zeroed();
1134 MAPIOpenLocalFormContainer(&mut result__)
1135 .and_then(|| windows_core::Type::from_abi(result__))
1136 }
1137}
1138#[inline]
1139pub unsafe fn MAPIReadMail<P2>(
1140 param0: usize,
1141 param1: usize,
1142 param2: P2,
1143 param3: u32,
1144 param4: u32,
1145 param5: *mut *mut MapiMessage,
1146) -> u32
1147where
1148 P2: windows_core::Param<windows_core::PCSTR>,
1149{
1150 windows_link::link!("mapi32" "system" fn MAPIReadMail(param0 : usize, param1 : usize, param2 : windows_core::PCSTR, param3 : u32, param4 : u32, param5 : *mut *mut MapiMessage) -> u32);
1151 unsafe {
1152 MAPIReadMail(
1153 param0,
1154 param1,
1155 param2.param().abi(),
1156 param3,
1157 param4,
1158 param5 as _,
1159 )
1160 }
1161}
1162#[inline]
1163pub unsafe fn MAPIResolveName<P2>(
1164 param0: usize,
1165 param1: usize,
1166 param2: P2,
1167 param3: u32,
1168 param4: u32,
1169 param5: *mut *mut MapiRecipDesc,
1170) -> u32
1171where
1172 P2: windows_core::Param<windows_core::PCSTR>,
1173{
1174 windows_link::link!("mapi32" "system" fn MAPIResolveName(param0 : usize, param1 : usize, param2 : windows_core::PCSTR, param3 : u32, param4 : u32, param5 : *mut *mut MapiRecipDesc) -> u32);
1175 unsafe {
1176 MAPIResolveName(
1177 param0,
1178 param1,
1179 param2.param().abi(),
1180 param3,
1181 param4,
1182 param5 as _,
1183 )
1184 }
1185}
1186#[inline]
1187pub unsafe fn MAPISaveMail<P5>(
1188 param0: usize,
1189 param1: usize,
1190 param2: *mut MapiMessage,
1191 param3: u32,
1192 param4: u32,
1193 param5: P5,
1194) -> u32
1195where
1196 P5: windows_core::Param<windows_core::PCSTR>,
1197{
1198 windows_link::link!("mapi32" "system" fn MAPISaveMail(param0 : usize, param1 : usize, param2 : *mut MapiMessage, param3 : u32, param4 : u32, param5 : windows_core::PCSTR) -> u32);
1199 unsafe {
1200 MAPISaveMail(
1201 param0,
1202 param1,
1203 param2 as _,
1204 param3,
1205 param4,
1206 param5.param().abi(),
1207 )
1208 }
1209}
1210#[inline]
1211pub unsafe fn MAPISendDocuments<P1, P2, P3>(
1212 param0: usize,
1213 param1: P1,
1214 param2: P2,
1215 param3: P3,
1216 param4: u32,
1217) -> u32
1218where
1219 P1: windows_core::Param<windows_core::PCSTR>,
1220 P2: windows_core::Param<windows_core::PCSTR>,
1221 P3: windows_core::Param<windows_core::PCSTR>,
1222{
1223 windows_link::link!("mapi32" "system" fn MAPISendDocuments(param0 : usize, param1 : windows_core::PCSTR, param2 : windows_core::PCSTR, param3 : windows_core::PCSTR, param4 : u32) -> u32);
1224 unsafe {
1225 MAPISendDocuments(
1226 param0,
1227 param1.param().abi(),
1228 param2.param().abi(),
1229 param3.param().abi(),
1230 param4,
1231 )
1232 }
1233}
1234#[inline]
1235pub unsafe fn MAPISendMail(
1236 param0: usize,
1237 param1: usize,
1238 param2: *mut MapiMessage,
1239 param3: u32,
1240 param4: u32,
1241) -> u32 {
1242 windows_link::link!("mapi32" "system" fn MAPISendMail(param0 : usize, param1 : usize, param2 : *mut MapiMessage, param3 : u32, param4 : u32) -> u32);
1243 unsafe { MAPISendMail(param0, param1, param2 as _, param3, param4) }
1244}
1245#[inline]
1246pub unsafe fn MAPIUninitialize() {
1247 windows_link::link!("mapi32" "system" fn MAPIUninitialize());
1248 unsafe { MAPIUninitialize() }
1249}
1250#[inline]
1251pub unsafe fn MNLS_CompareStringW<P2, P4>(
1252 locale: u32,
1253 dwcmpflags: u32,
1254 lpstring1: P2,
1255 cchcount1: i32,
1256 lpstring2: P4,
1257 cchcount2: i32,
1258) -> i32
1259where
1260 P2: windows_core::Param<windows_core::PCWSTR>,
1261 P4: windows_core::Param<windows_core::PCWSTR>,
1262{
1263 windows_link::link!("mapi32" "system" fn MNLS_CompareStringW(locale : u32, dwcmpflags : u32, lpstring1 : windows_core::PCWSTR, cchcount1 : i32, lpstring2 : windows_core::PCWSTR, cchcount2 : i32) -> i32);
1264 unsafe {
1265 MNLS_CompareStringW(
1266 locale,
1267 dwcmpflags,
1268 lpstring1.param().abi(),
1269 cchcount1,
1270 lpstring2.param().abi(),
1271 cchcount2,
1272 )
1273 }
1274}
1275#[inline]
1276pub unsafe fn MNLS_IsBadStringPtrW<P0>(lpsz: P0, ucchmax: u32) -> windows_core::BOOL
1277where
1278 P0: windows_core::Param<windows_core::PCWSTR>,
1279{
1280 windows_link::link!("mapi32" "system" fn MNLS_IsBadStringPtrW(lpsz : windows_core::PCWSTR, ucchmax : u32) -> windows_core::BOOL);
1281 unsafe { MNLS_IsBadStringPtrW(lpsz.param().abi(), ucchmax) }
1282}
1283#[inline]
1284pub unsafe fn MNLS_MultiByteToWideChar<P2, P4>(
1285 ucodepage: u32,
1286 dwflags: u32,
1287 lpmultibytestr: P2,
1288 cchmultibyte: i32,
1289 lpwidecharstr: P4,
1290 cchwidechar: i32,
1291) -> i32
1292where
1293 P2: windows_core::Param<windows_core::PCSTR>,
1294 P4: windows_core::Param<windows_core::PCWSTR>,
1295{
1296 windows_link::link!("mapi32" "system" fn MNLS_MultiByteToWideChar(ucodepage : u32, dwflags : u32, lpmultibytestr : windows_core::PCSTR, cchmultibyte : i32, lpwidecharstr : windows_core::PCWSTR, cchwidechar : i32) -> i32);
1297 unsafe {
1298 MNLS_MultiByteToWideChar(
1299 ucodepage,
1300 dwflags,
1301 lpmultibytestr.param().abi(),
1302 cchmultibyte,
1303 lpwidecharstr.param().abi(),
1304 cchwidechar,
1305 )
1306 }
1307}
1308#[inline]
1309pub unsafe fn MNLS_WideCharToMultiByte<P2, P4, P6>(
1310 ucodepage: u32,
1311 dwflags: u32,
1312 lpwidecharstr: P2,
1313 cchwidechar: i32,
1314 lpmultibytestr: P4,
1315 cchmultibyte: i32,
1316 lpdefaultchar: P6,
1317 lpfuseddefaultchar: *mut windows_core::BOOL,
1318) -> i32
1319where
1320 P2: windows_core::Param<windows_core::PCWSTR>,
1321 P4: windows_core::Param<windows_core::PCSTR>,
1322 P6: windows_core::Param<windows_core::PCSTR>,
1323{
1324 windows_link::link!("mapi32" "system" fn MNLS_WideCharToMultiByte(ucodepage : u32, dwflags : u32, lpwidecharstr : windows_core::PCWSTR, cchwidechar : i32, lpmultibytestr : windows_core::PCSTR, cchmultibyte : i32, lpdefaultchar : windows_core::PCSTR, lpfuseddefaultchar : *mut windows_core::BOOL) -> i32);
1325 unsafe {
1326 MNLS_WideCharToMultiByte(
1327 ucodepage,
1328 dwflags,
1329 lpwidecharstr.param().abi(),
1330 cchwidechar,
1331 lpmultibytestr.param().abi(),
1332 cchmultibyte,
1333 lpdefaultchar.param().abi(),
1334 lpfuseddefaultchar as _,
1335 )
1336 }
1337}
1338#[inline]
1339pub unsafe fn MNLS_lstrcmpW<P0, P1>(lpstring1: P0, lpstring2: P1) -> i32
1340where
1341 P0: windows_core::Param<windows_core::PCWSTR>,
1342 P1: windows_core::Param<windows_core::PCWSTR>,
1343{
1344 windows_link::link!("mapi32" "system" fn MNLS_lstrcmpW(lpstring1 : windows_core::PCWSTR, lpstring2 : windows_core::PCWSTR) -> i32);
1345 unsafe { MNLS_lstrcmpW(lpstring1.param().abi(), lpstring2.param().abi()) }
1346}
1347#[inline]
1348pub unsafe fn MNLS_lstrcpyW<P0, P1>(lpstring1: P0, lpstring2: P1) -> windows_core::PWSTR
1349where
1350 P0: windows_core::Param<windows_core::PCWSTR>,
1351 P1: windows_core::Param<windows_core::PCWSTR>,
1352{
1353 windows_link::link!("mapi32" "system" fn MNLS_lstrcpyW(lpstring1 : windows_core::PCWSTR, lpstring2 : windows_core::PCWSTR) -> windows_core::PWSTR);
1354 unsafe { MNLS_lstrcpyW(lpstring1.param().abi(), lpstring2.param().abi()) }
1355}
1356#[inline]
1357pub unsafe fn MNLS_lstrlenW<P0>(lpstring: P0) -> i32
1358where
1359 P0: windows_core::Param<windows_core::PCWSTR>,
1360{
1361 windows_link::link!("mapi32" "system" fn MNLS_lstrlenW(lpstring : windows_core::PCWSTR) -> i32);
1362 unsafe { MNLS_lstrlenW(lpstring.param().abi()) }
1363}
1364#[inline]
1365pub unsafe fn MSProviderInit<P1>(
1366 param0: windows::Win32::Foundation::HINSTANCE,
1367 param1: P1,
1368 param2: LPALLOCATEBUFFER,
1369 param3: LPALLOCATEMORE,
1370 param4: LPFREEBUFFER,
1371 param5: u32,
1372 param6: u32,
1373 param7: *mut u32,
1374 param8: *mut Option<IMSProvider>,
1375) -> windows_core::Result<()>
1376where
1377 P1: windows_core::Param<windows::Win32::System::Com::IMalloc>,
1378{
1379 windows_link::link!("olmapi32" "cdecl" fn MSProviderInit(param0 : windows::Win32::Foundation:: HINSTANCE, param1 : * mut core::ffi::c_void, param2 : LPALLOCATEBUFFER, param3 : LPALLOCATEMORE, param4 : LPFREEBUFFER, param5 : u32, param6 : u32, param7 : *mut u32, param8 : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1380 unsafe {
1381 MSProviderInit(
1382 param0,
1383 param1.param().abi(),
1384 param2,
1385 param3,
1386 param4,
1387 param5,
1388 param6,
1389 param7 as _,
1390 core::mem::transmute(param8),
1391 )
1392 .ok()
1393 }
1394}
1395#[inline]
1396pub unsafe fn MapStorageSCode(stgscode: i32) -> i32 {
1397 windows_link::link!("mapi32" "system" fn MapStorageSCode(stgscode : i32) -> i32);
1398 unsafe { MapStorageSCode(stgscode) }
1399}
1400#[inline]
1401pub unsafe fn OpenIMsgOnIStg<P4, P6>(
1402 lpmsgsess: windows::Win32::Storage::Imapi::LPMSGSESS,
1403 lpallocatebuffer: LPALLOCATEBUFFER,
1404 lpallocatemore: LPALLOCATEMORE,
1405 lpfreebuffer: LPFREEBUFFER,
1406 lpmalloc: P4,
1407 lpmapisup: *mut core::ffi::c_void,
1408 lpstg: P6,
1409 lpfmsgcallrelease: *mut windows::Win32::Storage::Imapi::MSGCALLRELEASE,
1410 ulcallerdata: u32,
1411 ulflags: u32,
1412 lppmsg: *mut Option<IMessage>,
1413) -> i32
1414where
1415 P4: windows_core::Param<windows::Win32::System::Com::IMalloc>,
1416 P6: windows_core::Param<windows::Win32::System::Com::StructuredStorage::IStorage>,
1417{
1418 windows_link::link!("mapi32" "system" fn OpenIMsgOnIStg(lpmsgsess : windows::Win32::Storage::Imapi:: LPMSGSESS, lpallocatebuffer : LPALLOCATEBUFFER, lpallocatemore : LPALLOCATEMORE, lpfreebuffer : LPFREEBUFFER, lpmalloc : * mut core::ffi::c_void, lpmapisup : *mut core::ffi::c_void, lpstg : * mut core::ffi::c_void, lpfmsgcallrelease : *mut windows::Win32::Storage::Imapi:: MSGCALLRELEASE, ulcallerdata : u32, ulflags : u32, lppmsg : *mut * mut core::ffi::c_void) -> i32);
1419 unsafe {
1420 OpenIMsgOnIStg(
1421 lpmsgsess,
1422 lpallocatebuffer,
1423 lpallocatemore,
1424 lpfreebuffer,
1425 lpmalloc.param().abi(),
1426 lpmapisup as _,
1427 lpstg.param().abi(),
1428 lpfmsgcallrelease as _,
1429 ulcallerdata,
1430 ulflags,
1431 core::mem::transmute(lppmsg),
1432 )
1433 }
1434}
1435#[inline]
1436pub unsafe fn OpenIMsgSession<P0>(
1437 lpmalloc: P0,
1438 ulflags: u32,
1439 lppmsgsess: *mut windows::Win32::Storage::Imapi::LPMSGSESS,
1440) -> i32
1441where
1442 P0: windows_core::Param<windows::Win32::System::Com::IMalloc>,
1443{
1444 windows_link::link!("mapi32" "system" fn OpenIMsgSession(lpmalloc : * mut core::ffi::c_void, ulflags : u32, lppmsgsess : *mut windows::Win32::Storage::Imapi:: LPMSGSESS) -> i32);
1445 unsafe { OpenIMsgSession(lpmalloc.param().abi(), ulflags, lppmsgsess as _) }
1446}
1447#[inline]
1448pub unsafe fn OpenStreamOnFile(
1449 lpallocatebuffer: LPALLOCATEBUFFER,
1450 lpfreebuffer: LPFREEBUFFER,
1451 ulflags: u32,
1452 lpszfilename: *const i8,
1453 lpszprefix: Option<*const i8>,
1454) -> windows_core::Result<windows::Win32::System::Com::IStream> {
1455 windows_link::link!("mapi32" "system" fn OpenStreamOnFile(lpallocatebuffer : LPALLOCATEBUFFER, lpfreebuffer : LPFREEBUFFER, ulflags : u32, lpszfilename : *const i8, lpszprefix : *const i8, lppstream : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1456 unsafe {
1457 let mut result__ = core::mem::zeroed();
1458 OpenStreamOnFile(
1459 lpallocatebuffer,
1460 lpfreebuffer,
1461 ulflags,
1462 lpszfilename,
1463 lpszprefix.unwrap_or(core::mem::zeroed()) as _,
1464 &mut result__,
1465 )
1466 .and_then(|| windows_core::Type::from_abi(result__))
1467 }
1468}
1469#[inline]
1470pub unsafe fn PpropFindProp(
1471 lpproparray: *mut SPropValue,
1472 cvalues: u32,
1473 ulproptag: u32,
1474) -> *mut SPropValue {
1475 windows_link::link!("mapi32" "system" fn PpropFindProp(lpproparray : *mut SPropValue, cvalues : u32, ulproptag : u32) -> *mut SPropValue);
1476 unsafe { PpropFindProp(lpproparray as _, cvalues, ulproptag) }
1477}
1478#[inline]
1479pub unsafe fn PropCopyMore(
1480 lpspropvaluedest: *mut SPropValue,
1481 lpspropvaluesrc: *mut SPropValue,
1482 lpfallocmore: LPALLOCATEMORE,
1483 lpvobject: *mut core::ffi::c_void,
1484) -> i32 {
1485 windows_link::link!("mapi32" "system" fn PropCopyMore(lpspropvaluedest : *mut SPropValue, lpspropvaluesrc : *mut SPropValue, lpfallocmore : LPALLOCATEMORE, lpvobject : *mut core::ffi::c_void) -> i32);
1486 unsafe {
1487 PropCopyMore(
1488 lpspropvaluedest as _,
1489 lpspropvaluesrc as _,
1490 lpfallocmore,
1491 lpvobject as _,
1492 )
1493 }
1494}
1495#[inline]
1496pub unsafe fn RTFSync<P0>(lpmessage: P0, ulflags: u32) -> windows_core::Result<windows_core::BOOL>
1497where
1498 P0: windows_core::Param<IMessage>,
1499{
1500 windows_link::link!("mapi32" "system" fn RTFSync(lpmessage : * mut core::ffi::c_void, ulflags : u32, lpfmessageupdated : *mut windows_core::BOOL) -> windows_core::HRESULT);
1501 unsafe {
1502 let mut result__ = core::mem::zeroed();
1503 RTFSync(lpmessage.param().abi(), ulflags, &mut result__).map(|| result__)
1504 }
1505}
1506#[inline]
1507pub unsafe fn ScBinFromHexBounded(lpsz: *const i8, lpb: *mut u8, cb: u32) -> i32 {
1508 windows_link::link!("mapi32" "system" fn ScBinFromHexBounded(lpsz : *const i8, lpb : *mut u8, cb : u32) -> i32);
1509 unsafe { ScBinFromHexBounded(lpsz, lpb as _, cb) }
1510}
1511#[inline]
1512pub unsafe fn ScCopyNotifications(
1513 cnotification: i32,
1514 lpnotifications: *mut NOTIFICATION,
1515 lpvdst: *mut core::ffi::c_void,
1516 lpcb: *mut u32,
1517) -> i32 {
1518 windows_link::link!("mapi32" "system" fn ScCopyNotifications(cnotification : i32, lpnotifications : *mut NOTIFICATION, lpvdst : *mut core::ffi::c_void, lpcb : *mut u32) -> i32);
1519 unsafe { ScCopyNotifications(cnotification, lpnotifications as _, lpvdst as _, lpcb as _) }
1520}
1521#[inline]
1522pub unsafe fn ScCopyProps(
1523 cvalues: i32,
1524 lpproparray: *mut SPropValue,
1525 lpvdst: *mut core::ffi::c_void,
1526 lpcb: *mut u32,
1527) -> i32 {
1528 windows_link::link!("mapi32" "system" fn ScCopyProps(cvalues : i32, lpproparray : *mut SPropValue, lpvdst : *mut core::ffi::c_void, lpcb : *mut u32) -> i32);
1529 unsafe { ScCopyProps(cvalues, lpproparray as _, lpvdst as _, lpcb as _) }
1530}
1531#[inline]
1532pub unsafe fn ScCountNotifications(
1533 cnotifications: i32,
1534 lpnotifications: *mut NOTIFICATION,
1535 lpcb: *mut u32,
1536) -> i32 {
1537 windows_link::link!("mapi32" "system" fn ScCountNotifications(cnotifications : i32, lpnotifications : *mut NOTIFICATION, lpcb : *mut u32) -> i32);
1538 unsafe { ScCountNotifications(cnotifications, lpnotifications as _, lpcb as _) }
1539}
1540#[inline]
1541pub unsafe fn ScCountProps(cvalues: i32, lpproparray: *mut SPropValue, lpcb: *mut u32) -> i32 {
1542 windows_link::link!("mapi32" "system" fn ScCountProps(cvalues : i32, lpproparray : *mut SPropValue, lpcb : *mut u32) -> i32);
1543 unsafe { ScCountProps(cvalues, lpproparray as _, lpcb as _) }
1544}
1545#[inline]
1546pub unsafe fn ScCreateConversationIndex(
1547 cbparent: u32,
1548 lpbparent: *mut u8,
1549 lpcbconvindex: *mut u32,
1550 lppbconvindex: *mut *mut u8,
1551) -> i32 {
1552 windows_link::link!("mapi32" "system" fn ScCreateConversationIndex(cbparent : u32, lpbparent : *mut u8, lpcbconvindex : *mut u32, lppbconvindex : *mut *mut u8) -> i32);
1553 unsafe {
1554 ScCreateConversationIndex(
1555 cbparent,
1556 lpbparent as _,
1557 lpcbconvindex as _,
1558 lppbconvindex as _,
1559 )
1560 }
1561}
1562#[inline]
1563pub unsafe fn ScDupPropset(
1564 cvalues: i32,
1565 lpproparray: *mut SPropValue,
1566 lpallocatebuffer: LPALLOCATEBUFFER,
1567 lppproparray: *mut *mut SPropValue,
1568) -> i32 {
1569 windows_link::link!("mapi32" "system" fn ScDupPropset(cvalues : i32, lpproparray : *mut SPropValue, lpallocatebuffer : LPALLOCATEBUFFER, lppproparray : *mut *mut SPropValue) -> i32);
1570 unsafe {
1571 ScDupPropset(
1572 cvalues,
1573 lpproparray as _,
1574 lpallocatebuffer,
1575 lppproparray as _,
1576 )
1577 }
1578}
1579#[inline]
1580pub unsafe fn ScInitMapiUtil(ulflags: u32) -> i32 {
1581 windows_link::link!("mapi32" "system" fn ScInitMapiUtil(ulflags : u32) -> i32);
1582 unsafe { ScInitMapiUtil(ulflags) }
1583}
1584#[inline]
1585pub unsafe fn ScLocalPathFromUNC<P0, P1>(lpszunc: P0, lpszlocal: P1, cchlocal: u32) -> i32
1586where
1587 P0: windows_core::Param<windows_core::PCSTR>,
1588 P1: windows_core::Param<windows_core::PCSTR>,
1589{
1590 windows_link::link!("mapi32" "system" fn ScLocalPathFromUNC(lpszunc : windows_core::PCSTR, lpszlocal : windows_core::PCSTR, cchlocal : u32) -> i32);
1591 unsafe { ScLocalPathFromUNC(lpszunc.param().abi(), lpszlocal.param().abi(), cchlocal) }
1592}
1593#[inline]
1594pub unsafe fn ScMAPIXFromSMAPI(
1595 lhsimplesession: usize,
1596 ulflags: u32,
1597 lpinterface: *mut windows_core::GUID,
1598 lppmapisession: *mut Option<IMAPISession>,
1599) -> i32 {
1600 windows_link::link!("mapi32" "system" fn ScMAPIXFromSMAPI(lhsimplesession : usize, ulflags : u32, lpinterface : *mut windows_core::GUID, lppmapisession : *mut * mut core::ffi::c_void) -> i32);
1601 unsafe {
1602 ScMAPIXFromSMAPI(
1603 lhsimplesession,
1604 ulflags,
1605 lpinterface as _,
1606 core::mem::transmute(lppmapisession),
1607 )
1608 }
1609}
1610#[inline]
1611pub unsafe fn ScRelocNotifications(
1612 cnotification: i32,
1613 lpnotifications: *mut NOTIFICATION,
1614 lpvbaseold: *mut core::ffi::c_void,
1615 lpvbasenew: *mut core::ffi::c_void,
1616 lpcb: *mut u32,
1617) -> i32 {
1618 windows_link::link!("mapi32" "system" fn ScRelocNotifications(cnotification : i32, lpnotifications : *mut NOTIFICATION, lpvbaseold : *mut core::ffi::c_void, lpvbasenew : *mut core::ffi::c_void, lpcb : *mut u32) -> i32);
1619 unsafe {
1620 ScRelocNotifications(
1621 cnotification,
1622 lpnotifications as _,
1623 lpvbaseold as _,
1624 lpvbasenew as _,
1625 lpcb as _,
1626 )
1627 }
1628}
1629#[inline]
1630pub unsafe fn ScRelocProps(
1631 cvalues: i32,
1632 lpproparray: *mut SPropValue,
1633 lpvbaseold: *mut core::ffi::c_void,
1634 lpvbasenew: *mut core::ffi::c_void,
1635 lpcb: *mut u32,
1636) -> i32 {
1637 windows_link::link!("mapi32" "system" fn ScRelocProps(cvalues : i32, lpproparray : *mut SPropValue, lpvbaseold : *mut core::ffi::c_void, lpvbasenew : *mut core::ffi::c_void, lpcb : *mut u32) -> i32);
1638 unsafe {
1639 ScRelocProps(
1640 cvalues,
1641 lpproparray as _,
1642 lpvbaseold as _,
1643 lpvbasenew as _,
1644 lpcb as _,
1645 )
1646 }
1647}
1648#[inline]
1649pub unsafe fn ScUNCFromLocalPath<P0, P1>(lpszlocal: P0, lpszunc: P1, cchunc: u32) -> i32
1650where
1651 P0: windows_core::Param<windows_core::PCSTR>,
1652 P1: windows_core::Param<windows_core::PCSTR>,
1653{
1654 windows_link::link!("mapi32" "system" fn ScUNCFromLocalPath(lpszlocal : windows_core::PCSTR, lpszunc : windows_core::PCSTR, cchunc : u32) -> i32);
1655 unsafe { ScUNCFromLocalPath(lpszlocal.param().abi(), lpszunc.param().abi(), cchunc) }
1656}
1657#[inline]
1658pub unsafe fn SetAttribIMsgOnIStg(
1659 lpobject: *mut core::ffi::c_void,
1660 lpproptags: *mut SPropTagArray,
1661 lppropattrs: *mut SPropAttrArray,
1662 lpppropproblems: *mut *mut SPropProblemArray,
1663) -> windows_core::Result<()> {
1664 windows_link::link!("mapi32" "system" fn SetAttribIMsgOnIStg(lpobject : *mut core::ffi::c_void, lpproptags : *mut SPropTagArray, lppropattrs : *mut SPropAttrArray, lpppropproblems : *mut *mut SPropProblemArray) -> windows_core::HRESULT);
1665 unsafe {
1666 SetAttribIMsgOnIStg(
1667 lpobject as _,
1668 lpproptags as _,
1669 lppropattrs as _,
1670 lpppropproblems as _,
1671 )
1672 .ok()
1673 }
1674}
1675#[inline]
1676pub unsafe fn SzFindCh(lpsz: *mut i8, ch: u16) -> *mut i8 {
1677 windows_link::link!("mapi32" "system" fn SzFindCh(lpsz : *mut i8, ch : u16) -> *mut i8);
1678 unsafe { SzFindCh(lpsz as _, ch) }
1679}
1680#[inline]
1681pub unsafe fn SzFindLastCh(lpsz: *mut i8, ch: u16) -> *mut i8 {
1682 windows_link::link!("mapi32" "system" fn SzFindLastCh(lpsz : *mut i8, ch : u16) -> *mut i8);
1683 unsafe { SzFindLastCh(lpsz as _, ch) }
1684}
1685#[inline]
1686pub unsafe fn SzFindSz(lpsz: *mut i8, lpszkey: *mut i8) -> *mut i8 {
1687 windows_link::link!("mapi32" "system" fn SzFindSz(lpsz : *mut i8, lpszkey : *mut i8) -> *mut i8);
1688 unsafe { SzFindSz(lpsz as _, lpszkey as _) }
1689}
1690#[inline]
1691pub unsafe fn UFromSz(lpsz: *mut i8) -> u32 {
1692 windows_link::link!("mapi32" "system" fn UFromSz(lpsz : *mut i8) -> u32);
1693 unsafe { UFromSz(lpsz as _) }
1694}
1695#[inline]
1696pub unsafe fn UlAddRef(lpunk: *mut core::ffi::c_void) -> u32 {
1697 windows_link::link!("mapi32" "system" fn UlAddRef(lpunk : *mut core::ffi::c_void) -> u32);
1698 unsafe { UlAddRef(lpunk as _) }
1699}
1700#[inline]
1701pub unsafe fn UlFromSzHex(lpsz: *mut i8) -> u32 {
1702 windows_link::link!("mapi32" "system" fn UlFromSzHex(lpsz : *mut i8) -> u32);
1703 unsafe { UlFromSzHex(lpsz as _) }
1704}
1705#[inline]
1706pub unsafe fn UlPropSize(lpspropvalue: *mut SPropValue) -> u32 {
1707 windows_link::link!("mapi32" "system" fn UlPropSize(lpspropvalue : *mut SPropValue) -> u32);
1708 unsafe { UlPropSize(lpspropvalue as _) }
1709}
1710#[inline]
1711pub unsafe fn UlRelease(lpunk: *mut core::ffi::c_void) -> u32 {
1712 windows_link::link!("mapi32" "system" fn UlRelease(lpunk : *mut core::ffi::c_void) -> u32);
1713 unsafe { UlRelease(lpunk as _) }
1714}
1715#[inline]
1716pub unsafe fn WrapCompressedRTFStream<P0>(
1717 lpcompressedrtfstream: P0,
1718 ulflags: u32,
1719) -> windows_core::Result<windows::Win32::System::Com::IStream>
1720where
1721 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
1722{
1723 windows_link::link!("mapi32" "system" fn WrapCompressedRTFStream(lpcompressedrtfstream : * mut core::ffi::c_void, ulflags : u32, lpuncompressedrtfstream : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1724 unsafe {
1725 let mut result__ = core::mem::zeroed();
1726 WrapCompressedRTFStream(lpcompressedrtfstream.param().abi(), ulflags, &mut result__)
1727 .and_then(|| windows_core::Type::from_abi(result__))
1728 }
1729}
1730#[inline]
1731pub unsafe fn WrapStoreEntryID(
1732 ulflags: u32,
1733 lpszdllname: *const i8,
1734 cborigentry: u32,
1735 lporigentry: *mut ENTRYID,
1736 lpcbwrappedentry: *mut u32,
1737 lppwrappedentry: *mut *mut ENTRYID,
1738) -> windows_core::Result<()> {
1739 windows_link::link!("mapi32" "system" fn WrapStoreEntryID(ulflags : u32, lpszdllname : *const i8, cborigentry : u32, lporigentry : *mut ENTRYID, lpcbwrappedentry : *mut u32, lppwrappedentry : *mut *mut ENTRYID) -> windows_core::HRESULT);
1740 unsafe {
1741 WrapStoreEntryID(
1742 ulflags,
1743 lpszdllname,
1744 cborigentry,
1745 lporigentry as _,
1746 lpcbwrappedentry as _,
1747 lppwrappedentry as _,
1748 )
1749 .ok()
1750 }
1751}
1752#[inline]
1753pub unsafe fn __CPPValidateParameters(
1754 emethod: METHODS,
1755 ppfirst: *const core::ffi::c_void,
1756) -> windows_core::Result<()> {
1757 windows_link::link!("mapi32" "system" fn __CPPValidateParameters(emethod : METHODS, ppfirst : *const core::ffi::c_void) -> windows_core::HRESULT);
1758 unsafe { __CPPValidateParameters(emethod, ppfirst).ok() }
1759}
1760#[inline]
1761pub unsafe fn __ValidateParameters(
1762 emethod: METHODS,
1763 ppthis: *mut core::ffi::c_void,
1764) -> windows_core::Result<()> {
1765 windows_link::link!("mapi32" "system" fn __ValidateParameters(emethod : METHODS, ppthis : *mut core::ffi::c_void) -> windows_core::HRESULT);
1766 unsafe { __ValidateParameters(emethod, ppthis as _).ok() }
1767}
1768pub const ABORT_XP_HEADER_OPERATION: u32 = 2097152u32;
1769pub type ABPROVIDERINIT = Option<
1770 unsafe extern "system" fn(
1771 hinstance: windows::Win32::Foundation::HINSTANCE,
1772 lpmalloc: windows_core::Ref<'_, windows::Win32::System::Com::IMalloc>,
1773 lpallocatebuffer: LPALLOCATEBUFFER,
1774 lpallocatemore: LPALLOCATEMORE,
1775 lpfreebuffer: LPFREEBUFFER,
1776 ulflags: u32,
1777 ulmapiver: u32,
1778 lpulproviderver: *mut u32,
1779 lppabprovider: windows_core::OutRef<'_, IABProvider>,
1780 ) -> windows_core::HRESULT,
1781>;
1782pub const AB_FIND_ON_OPEN: u32 = 16u32;
1783pub const AB_MODIFIABLE: u32 = 4u32;
1784pub const AB_NOT_DEFAULT: u32 = 32u32;
1785pub const AB_NO_DIALOG: u32 = 1u32;
1786pub const AB_RECIPIENTS: u32 = 1u32;
1787pub const AB_RESOLVE: u32 = 32u32;
1788pub const AB_SELECTONLY: u32 = 16u32;
1789pub const AB_SHOW_OTHERS: u32 = 4u32;
1790pub const AB_SHOW_PHANTOMS: u32 = 2u32;
1791pub const AB_SUBCONTAINERS: u32 = 2u32;
1792pub const AB_UNICODEUI: u32 = 64u32;
1793pub const AB_UNMODIFIABLE: u32 = 8u32;
1794pub const ACCTUI_NO_WARNING: u32 = 256u32;
1795pub const ACCTUI_SHOW_ACCTWIZARD: u32 = 1024u32;
1796pub const ACCTUI_SHOW_DATA_TAB: u32 = 512u32;
1797#[repr(C)]
1798#[derive(Clone, Copy, Debug, PartialEq)]
1799pub struct ACCT_BIN {
1800 pub cb: u32,
1801 pub pb: *mut u8,
1802}
1803impl Default for ACCT_BIN {
1804 fn default() -> Self {
1805 unsafe { core::mem::zeroed() }
1806 }
1807}
1808pub const ACCT_INIT_NOSYNCH_MAPI_ACCTS: u32 = 1u32;
1809#[repr(C)]
1810#[derive(Clone, Copy)]
1811pub struct ACCT_VARIANT {
1812 pub dwType: u32,
1813 pub Val: ACCT_VARIANT_0,
1814}
1815impl Default for ACCT_VARIANT {
1816 fn default() -> Self {
1817 unsafe { core::mem::zeroed() }
1818 }
1819}
1820#[repr(C)]
1821#[derive(Clone, Copy)]
1822pub union ACCT_VARIANT_0 {
1823 pub dw: u32,
1824 pub pwsz: windows_core::PWSTR,
1825 pub bin: ACCT_BIN,
1826}
1827impl Default for ACCT_VARIANT_0 {
1828 fn default() -> Self {
1829 unsafe { core::mem::zeroed() }
1830 }
1831}
1832pub const ACLTABLE_FREEBUSY: u32 = 2u32;
1833#[repr(C)]
1834#[derive(Clone, Copy)]
1835pub struct ACTION {
1836 pub acttype: ACTTYPE,
1837 pub ulActionFlavor: u32,
1838 pub lpRes: *mut SRestriction,
1839 pub lpPropTagArray: *mut SPropTagArray,
1840 pub ulFlags: u32,
1841 pub dwAlignPad: u32,
1842 pub Anonymous: ACTION_0,
1843}
1844impl Default for ACTION {
1845 fn default() -> Self {
1846 unsafe { core::mem::zeroed() }
1847 }
1848}
1849#[repr(C)]
1850#[derive(Clone, Copy)]
1851pub union ACTION_0 {
1852 pub actMoveCopy: ACTION_0_0,
1853 pub actReply: ACTION_0_1,
1854 pub actDeferAction: ACTION_0_2,
1855 pub scBounceCode: i32,
1856 pub lpadrlist: *mut ADRLIST,
1857 pub propTag: SPropValue,
1858}
1859impl Default for ACTION_0 {
1860 fn default() -> Self {
1861 unsafe { core::mem::zeroed() }
1862 }
1863}
1864#[repr(C)]
1865#[derive(Clone, Copy, Debug, PartialEq)]
1866pub struct ACTION_0_2 {
1867 pub cbData: u32,
1868 pub pbData: *mut u8,
1869}
1870impl Default for ACTION_0_2 {
1871 fn default() -> Self {
1872 unsafe { core::mem::zeroed() }
1873 }
1874}
1875#[repr(C)]
1876#[derive(Clone, Copy, Debug, PartialEq)]
1877pub struct ACTION_0_0 {
1878 pub cbStoreEntryId: u32,
1879 pub lpStoreEntryId: *mut ENTRYID,
1880 pub cbFldEntryId: u32,
1881 pub lpFldEntryId: *mut ENTRYID,
1882}
1883impl Default for ACTION_0_0 {
1884 fn default() -> Self {
1885 unsafe { core::mem::zeroed() }
1886 }
1887}
1888#[repr(C)]
1889#[derive(Clone, Copy, Debug, PartialEq)]
1890pub struct ACTION_0_1 {
1891 pub cbEntryId: u32,
1892 pub lpEntryId: *mut ENTRYID,
1893 pub guidReplyTemplate: windows_core::GUID,
1894}
1895impl Default for ACTION_0_1 {
1896 fn default() -> Self {
1897 unsafe { core::mem::zeroed() }
1898 }
1899}
1900#[repr(C)]
1901#[derive(Clone, Copy, Debug, PartialEq)]
1902pub struct ACTIONS {
1903 pub ulVersion: u32,
1904 pub cActions: u32,
1905 pub lpAction: *mut ACTION,
1906}
1907impl Default for ACTIONS {
1908 fn default() -> Self {
1909 unsafe { core::mem::zeroed() }
1910 }
1911}
1912#[repr(transparent)]
1913#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
1914pub struct ACTTYPE(pub i32);
1915#[repr(transparent)]
1916#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
1917pub struct ADDRESSFORMAT(pub i32);
1918#[repr(C)]
1919#[derive(Clone, Copy, Debug, PartialEq)]
1920pub struct ADDRESSLIST {
1921 pub cAdrs: u32,
1922 pub prgAdr: *mut ADDRESSPROPS,
1923}
1924impl Default for ADDRESSLIST {
1925 fn default() -> Self {
1926 unsafe { core::mem::zeroed() }
1927 }
1928}
1929#[repr(C)]
1930#[derive(Clone, Copy, Debug, PartialEq)]
1931pub struct ADDRESSPROPS {
1932 pub dwProps: u32,
1933 pub hAddress: *mut HADDRESS__,
1934 pub ietFriendly: ENCODINGTYPE,
1935 pub hCharset: *mut HCHARSET__,
1936 pub dwAdrType: u32,
1937 pub pszFriendly: windows_core::PSTR,
1938 pub pwszReserved: windows_core::PWSTR,
1939 pub pszEmail: windows_core::PSTR,
1940 pub certstate: CERTSTATE,
1941 pub tbSigning: windows::Win32::System::Com::BLOB,
1942 pub tbEncryption: windows::Win32::System::Com::BLOB,
1943 pub dwCookie: u32,
1944 pub dwReserved1: u32,
1945 pub dwReserved2: u32,
1946}
1947impl Default for ADDRESSPROPS {
1948 fn default() -> Self {
1949 unsafe { core::mem::zeroed() }
1950 }
1951}
1952pub const ADDRESS_ONE: u32 = 8u32;
1953pub const ADMN_PAD: u32 = 3u32;
1954#[repr(C)]
1955#[derive(Clone, Copy, Debug, PartialEq)]
1956pub struct ADRENTRY {
1957 pub ulReserved1: u32,
1958 pub cValues: u32,
1959 pub rgPropVals: *mut SPropValue,
1960}
1961impl Default for ADRENTRY {
1962 fn default() -> Self {
1963 unsafe { core::mem::zeroed() }
1964 }
1965}
1966#[repr(C)]
1967#[derive(Clone, Copy, Debug, PartialEq)]
1968pub struct ADRLIST {
1969 pub cEntries: u32,
1970 pub aEntries: [ADRENTRY; 1],
1971}
1972impl Default for ADRLIST {
1973 fn default() -> Self {
1974 unsafe { core::mem::zeroed() }
1975 }
1976}
1977#[repr(C)]
1978#[derive(Clone, Copy, Debug, PartialEq)]
1979pub struct ADRPARM {
1980 pub cbABContEntryID: u32,
1981 pub lpABContEntryID: *mut ENTRYID,
1982 pub ulFlags: u32,
1983 pub lpReserved: *mut core::ffi::c_void,
1984 pub ulHelpContext: u32,
1985 pub lpszHelpFileName: *mut i8,
1986 pub lpfnABSDI: LPFNABSDI,
1987 pub lpfnDismiss: LPFNDISMISS,
1988 pub lpvDismissContext: *mut core::ffi::c_void,
1989 pub lpszCaption: *mut i8,
1990 pub lpszNewEntryTitle: *mut i8,
1991 pub lpszDestWellsTitle: *mut i8,
1992 pub cDestFields: u32,
1993 pub nDestFieldFocus: u32,
1994 pub lppszDestTitles: *mut *mut i8,
1995 pub lpulDestComps: *mut u32,
1996 pub lpContRestriction: *mut SRestriction,
1997 pub lpHierRestriction: *mut SRestriction,
1998}
1999impl Default for ADRPARM {
2000 fn default() -> Self {
2001 unsafe { core::mem::zeroed() }
2002 }
2003}
2004pub const ADRPARM_HELP_CTX: u32 = 0u32;
2005pub const AFT_DISPLAY_BOTH: ADDRESSFORMAT = ADDRESSFORMAT(2i32);
2006pub const AFT_DISPLAY_EMAIL: ADDRESSFORMAT = ADDRESSFORMAT(1i32);
2007pub const AFT_DISPLAY_FRIENDLY: ADDRESSFORMAT = ADDRESSFORMAT(0i32);
2008pub const AFT_RFC822_DECODED: ADDRESSFORMAT = ADDRESSFORMAT(3i32);
2009pub const AFT_RFC822_ENCODED: ADDRESSFORMAT = ADDRESSFORMAT(4i32);
2010pub const AFT_RFC822_TRANSMIT: ADDRESSFORMAT = ADDRESSFORMAT(5i32);
2011pub const AG_DAYS: u32 = 2u32;
2012pub const AG_MONTHS: u32 = 0u32;
2013pub const AG_WEEKS: u32 = 1u32;
2014pub const ANTIVIRUS_SCAN_NO_VIRUS: u32 = 0u32;
2015pub const ANTIVIRUS_SCAN_VIRUS_CLEANED: u32 = 2u32;
2016pub const ANTIVIRUS_SCAN_VIRUS_DELETED: u32 = 3u32;
2017pub const ANTIVIRUS_SCAN_VIRUS_PRESENT: u32 = 1u32;
2018pub const ATTACH_BY_REFERENCE: u32 = 2u32;
2019pub const ATTACH_BY_REF_ONLY: u32 = 4u32;
2020pub const ATTACH_BY_REF_RESOLVE: u32 = 3u32;
2021pub const ATTACH_BY_VALUE: u32 = 1u32;
2022pub const ATTACH_BY_WEBREFERENCE: u32 = 7u32;
2023pub const ATTACH_DIALOG: u32 = 1u32;
2024pub const ATTACH_EMBEDDED_MSG: u32 = 5u32;
2025pub const ATTACH_OLE: u32 = 6u32;
2026pub const AUTO_RESPONSE_SUPPRESS_AUTO_REPLY: u32 = 32u32;
2027pub const AUTO_RESPONSE_SUPPRESS_DR: u32 = 1u32;
2028pub const AUTO_RESPONSE_SUPPRESS_NDR: u32 = 2u32;
2029pub const AUTO_RESPONSE_SUPPRESS_NORFC821FROM: u32 = 64u32;
2030pub const AUTO_RESPONSE_SUPPRESS_NRN: u32 = 8u32;
2031pub const AUTO_RESPONSE_SUPPRESS_OOF: u32 = 16u32;
2032pub const AUTO_RESPONSE_SUPPRESS_RN: u32 = 4u32;
2033pub const BACKGROUND_SEARCH: u32 = 32u32;
2034pub const BEGIN_DEFERRED: u32 = 1u32;
2035pub const BMR_EQZ: u32 = 0u32;
2036pub const BMR_NEZ: u32 = 1u32;
2037#[repr(transparent)]
2038#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2039pub struct BODYLOCATION(pub i32);
2040#[repr(C)]
2041#[derive(Clone, Copy, Debug, PartialEq)]
2042pub struct BODYOFFSETS {
2043 pub cbBoundaryStart: u32,
2044 pub cbHeaderStart: u32,
2045 pub cbBodyStart: u32,
2046 pub cbBodyEnd: u32,
2047}
2048impl Default for BODYOFFSETS {
2049 fn default() -> Self {
2050 unsafe { core::mem::zeroed() }
2051 }
2052}
2053pub const BOOKMARK_BEGINNING: u32 = 0u32;
2054pub const BOOKMARK_CURRENT: u32 = 1u32;
2055pub const BOOKMARK_END: u32 = 2u32;
2056pub const CALLBACK_DISCONTINUE: u32 = 2147483648u32;
2057pub type CALLERRELEASE = Option<
2058 unsafe extern "system" fn(
2059 ulcallerdata: usize,
2060 lptbldata: windows_core::Ref<'_, ITableData>,
2061 lpvue: windows_core::Ref<'_, IMAPITable>,
2062 ),
2063>;
2064pub const CB_OID_1: u32 = 9u32;
2065pub const CB_OID_2: u32 = 10u32;
2066pub const CB_OID_3: u32 = 11u32;
2067pub const CB_OID_4: u32 = 12u32;
2068pub const CB_OID_MAC_BINARY: u32 = 9u32;
2069pub const CB_OID_MIMETAG: u32 = 9u32;
2070pub const CB_OID_OLE: u32 = 9u32;
2071pub const CB_OID_OLE1: u32 = 10u32;
2072pub const CB_OID_OLE1_STORAGE: u32 = 11u32;
2073pub const CB_OID_OLE2: u32 = 10u32;
2074pub const CB_OID_OLE2_STORAGE: u32 = 11u32;
2075pub const CB_OID_TNEF: u32 = 9u32;
2076pub const CCHMAX_CID: u32 = 255u32;
2077pub const CCHMAX_CSET_NAME: u32 = 128u32;
2078pub const CCHMAX_FACE_NAME: u32 = 128u32;
2079pub const CCHMAX_HEADER_LINE: u32 = 1000u32;
2080pub const CCHMAX_INTERNET_DATE: u32 = 50u32;
2081pub const CCHMAX_LANG_NAME: u32 = 128u32;
2082pub const CCHMAX_MID: u32 = 255u32;
2083pub const CDID_EMAIL: CERTDATAID = CERTDATAID(0i32);
2084pub const CDID_MAX: CERTDATAID = CERTDATAID(1i32);
2085#[repr(transparent)]
2086#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2087pub struct CERTDATAID(pub i32);
2088pub const CERTIFICATE_CHAIN_TOO_LONG: CERTSTATE = CERTSTATE(3i32);
2089pub const CERTIFICATE_CRL_LISTED: CERTSTATE = CERTSTATE(5i32);
2090pub const CERTIFICATE_ERROR: CERTSTATE = CERTSTATE(8i32);
2091pub const CERTIFICATE_EXPIRED: CERTSTATE = CERTSTATE(2i32);
2092pub const CERTIFICATE_INVALID: CERTSTATE = CERTSTATE(7i32);
2093pub const CERTIFICATE_MISSING_ISSUER: CERTSTATE = CERTSTATE(4i32);
2094pub const CERTIFICATE_NOPRINT: CERTSTATE = CERTSTATE(9i32);
2095pub const CERTIFICATE_NOT_PRESENT: CERTSTATE = CERTSTATE(1i32);
2096pub const CERTIFICATE_NOT_TRUSTED: CERTSTATE = CERTSTATE(6i32);
2097pub const CERTIFICATE_OK: CERTSTATE = CERTSTATE(0i32);
2098pub const CERTIFICATE_UNKNOWN: CERTSTATE = CERTSTATE(10i32);
2099#[repr(transparent)]
2100#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2101pub struct CERTNAMETYPE(pub i32);
2102#[repr(transparent)]
2103#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2104pub struct CERTSTATE(pub i32);
2105#[repr(transparent)]
2106#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2107pub struct CHARSETTYPE(pub i32);
2108pub const CHARSET_BODY: CHARSETTYPE = CHARSETTYPE(0i32);
2109pub const CHARSET_HEADER: CHARSETTYPE = CHARSETTYPE(1i32);
2110pub const CHARSET_WEB: CHARSETTYPE = CHARSETTYPE(2i32);
2111pub const CHECK_SENDER: u32 = 1u32;
2112pub const CLEAR_NRN_PENDING: u32 = 64u32;
2113pub const CLEAR_READ_FLAG: u32 = 4u32;
2114pub const CLEAR_RN_PENDING: u32 = 32u32;
2115pub const CLSID_IMimeHtmlProtocol: windows_core::GUID =
2116 windows_core::GUID::from_u128(0x05300401_bcbc_11d0_85e3_00c04fd85ab4);
2117pub const CLSID_IVirtualStream: windows_core::GUID =
2118 windows_core::GUID::from_u128(0xfd853cdf_7f86_11d0_8252_00c04fd85ab4);
2119pub const CLSID_MimeEdit: windows_core::GUID =
2120 windows_core::GUID::from_u128(0x1c82ead9_508e_11d1_8dcf_00c04fb951f9);
2121pub const CLSID_OlkAccountManager: windows_core::GUID =
2122 windows_core::GUID::from_u128(0xed475410_b0d6_11d2_8c3b_00104b2a6676);
2123pub const CLSID_OlkAddressBook: windows_core::GUID =
2124 windows_core::GUID::from_u128(0xed475419_b0d6_11d2_8c3b_00104b2a6676);
2125pub const CLSID_OlkHotmailAccount: windows_core::GUID =
2126 windows_core::GUID::from_u128(0x4db5cbf0_3b77_4852_bc8e_bb81908861f3);
2127pub const CLSID_OlkIMAP4Account: windows_core::GUID =
2128 windows_core::GUID::from_u128(0xed475412_b0d6_11d2_8c3b_00104b2a6676);
2129pub const CLSID_OlkLDAPAccount: windows_core::GUID =
2130 windows_core::GUID::from_u128(0x4db5cbf2_3b77_4852_bc8e_bb81908861f3);
2131pub const CLSID_OlkMAPIAccount: windows_core::GUID =
2132 windows_core::GUID::from_u128(0xed475414_b0d6_11d2_8c3b_00104b2a6676);
2133pub const CLSID_OlkMail: windows_core::GUID =
2134 windows_core::GUID::from_u128(0xed475418_b0d6_11d2_8c3b_00104b2a6676);
2135pub const CLSID_OlkPOP3Account: windows_core::GUID =
2136 windows_core::GUID::from_u128(0xed475411_b0d6_11d2_8c3b_00104b2a6676);
2137pub const CLSID_OlkStore: windows_core::GUID =
2138 windows_core::GUID::from_u128(0xed475420_b0d6_11d2_8c3b_00104b2a6676);
2139pub const CMDSETID_MimeEdit: windows_core::GUID =
2140 windows_core::GUID::from_u128(0x1c82eada_508e_11d1_8dcf_00c04fb951f9);
2141pub const CMDSETID_MimeEditHost: windows_core::GUID =
2142 windows_core::GUID::from_u128(0x1c82eadb_508e_11d1_8dcf_00c04fb951f9);
2143#[repr(C)]
2144#[derive(Clone, Copy, Debug, PartialEq)]
2145pub struct CODEPAGEINFO {
2146 pub dwMask: u32,
2147 pub cpiCodePage: u32,
2148 pub fIsValidCodePage: windows_core::BOOL,
2149 pub ulMaxCharSize: u32,
2150 pub fInternetCP: windows_core::BOOL,
2151 pub cpiFamily: u32,
2152 pub szName: [i8; 128],
2153 pub szBodyCset: [i8; 128],
2154 pub szHeaderCset: [i8; 128],
2155 pub szWebCset: [i8; 128],
2156 pub szFixedFont: [i8; 128],
2157 pub szVariableFont: [i8; 128],
2158 pub ietNewsDefault: ENCODINGTYPE,
2159 pub ietMailDefault: ENCODINGTYPE,
2160 pub dwReserved1: u32,
2161}
2162impl Default for CODEPAGEINFO {
2163 fn default() -> Self {
2164 unsafe { core::mem::zeroed() }
2165 }
2166}
2167pub const COMMIT_ONLYIFDIRTY: u32 = 1u32;
2168pub const COMMIT_REUSESTORAGE: u32 = 2u32;
2169pub const COMMIT_SMIMETRANSFERENCODE: u32 = 4u32;
2170pub const CONFIG_CHANGED: u32 = 1048576u32;
2171pub const CONFIG_NO_AUTO_DETECT: u32 = 16u32;
2172pub const CONFIG_OST_CACHE_ONLY: u32 = 32u32;
2173pub const CONFIG_PROMPT_FOR_CREDENTIALS: u32 = 8u32;
2174pub const CONFIG_SERVICE: u32 = 1u32;
2175pub const CONFIG_SHOW_CONNECT_UI: u32 = 4u32;
2176pub const CONFIG_SHOW_STARTUP_UI: u32 = 2u32;
2177pub const CONNECT_ANONYMOUS_ACCESS: u32 = 16u32;
2178pub const CONNECT_NO_ADDRESS_RESOLUTION: u32 = 64u32;
2179pub const CONNECT_NO_NOTIFICATIONS: u32 = 32u32;
2180pub const CONNECT_NO_RPC_ENCRYPTION: u32 = 2u32;
2181pub const CONNECT_NO_TABLE_NOTIFICATIONS: u32 = 32u32;
2182pub const CONNECT_NO_UNDER_COVER_CONNECTION: u32 = 8u32;
2183pub const CONNECT_RESTORE_DATABASE: u32 = 128u32;
2184pub const CONNECT_USE_ADMIN_PRIVILEGE: u32 = 1u32;
2185pub const CONNECT_USE_SEPARATE_CONNECTION: u32 = 4u32;
2186pub const CONVENIENT_DEPTH: u32 = 1u32;
2187pub const COPY_SUBFOLDERS: u32 = 16u32;
2188pub const COUNTRY_PAD: u32 = 0u32;
2189pub const CP_ACP: u32 = 0u32;
2190pub const CP_ISO2022JPESC: u32 = 50221u32;
2191pub const CP_ISO2022JPSIO: u32 = 50222u32;
2192pub const CP_JAUTODETECT: u32 = 50932u32;
2193pub const CP_KAUTODETECT: u32 = 50949u32;
2194pub const CP_OEMCP: u32 = 1u32;
2195pub const CP_UNICODE: u32 = 1200u32;
2196pub const CP_USASCII: u32 = 1252u32;
2197pub const CREATE_ALWAYS: u32 = 2u32;
2198pub const CREATE_CHECK_DUP_LOOSE: u32 = 2u32;
2199pub const CREATE_CHECK_DUP_STRICT: u32 = 1u32;
2200pub const CREATE_NEW: u32 = 1u32;
2201pub const CREATE_REPLACE: u32 = 4u32;
2202#[repr(transparent)]
2203#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2204pub struct CSETAPPLYTYPE(pub i32);
2205pub const CSET_APPLY_ALL: CSETAPPLYTYPE = CSETAPPLYTYPE(1i32);
2206pub const CSET_APPLY_TAG_ALL: CSETAPPLYTYPE = CSETAPPLYTYPE(2i32);
2207pub const CSET_APPLY_UNTAGGED: CSETAPPLYTYPE = CSETAPPLYTYPE(0i32);
2208pub const CURRENT_SPI_VERSION: i32 = 65552i32;
2209pub const DEF_ALLOW_8BIT_HEADER: u32 = 0u32;
2210pub const DEF_BODY_REMOVE_NBSP: u32 = 1u32;
2211pub const DEF_CAN_INLINE_TEXT_BODIES: u32 = 0u32;
2212pub const DEF_CBMAX_BODY_LINE: u32 = 74u32;
2213pub const DEF_CBMAX_HEADER_LINE: u32 = 1000u32;
2214pub const DEF_CLEANUP_TREE_ON_SAVE: u32 = 1u32;
2215pub const DEF_DBCS_ESCAPE_IS_8BIT: u32 = 0u32;
2216pub const DEF_DECODE_RFC1154: u32 = 0u32;
2217pub const DEF_ENCRYPTION_ALG_ID: u32 = 26114u32;
2218pub const DEF_GENERATE_MESSAGE_ID: u32 = 0u32;
2219pub const DEF_HANDSOFF_ONSAVE: u32 = 0u32;
2220pub const DEF_HASH_ALG_ID: u32 = 32772u32;
2221pub const DEF_HIDE_TNEF_ATTACHMENTS: u32 = 1u32;
2222pub const DEF_INCLUDE_SENDER_CERT: u32 = 0u32;
2223pub const DEF_LOAD_USE_BIND_FILE: u32 = 0u32;
2224pub const DEF_NO_DEFAULT_CNTTYPE: u32 = 0u32;
2225pub const DEF_SAVEBODY_KEEPBOUNDARY: u32 = 0u32;
2226pub const DEF_SECURITY_IGNOREMASK: u32 = 0u32;
2227pub const DEF_SHOW_MACBINARY: u32 = 0u32;
2228pub const DEF_SUPPORT_EXTERNAL_BODY: u32 = 0u32;
2229pub const DEF_WRAP_BODY_TEXT: u32 = 1u32;
2230pub const DEINIT_HURRY: u32 = 2147483648u32;
2231pub const DEINIT_NORMAL: u32 = 1u32;
2232pub const DELETE_CHILDREN_ONLY: u32 = 2u32;
2233pub const DELETE_HARD_DELETE: u32 = 16u32;
2234pub const DELETE_PROMOTE_CHILDREN: u32 = 1u32;
2235pub const DEL_ASSOCIATED: u32 = 8u32;
2236pub const DEL_FOLDERS: u32 = 4u32;
2237pub const DEL_MESSAGES: u32 = 1u32;
2238pub const DIALOG_ALLOW_CANCEL: u32 = 128u32;
2239pub const DIALOG_ATTACH: u32 = 8u32;
2240pub const DIALOG_CONFIRM_CANCEL: u32 = 256u32;
2241pub const DIALOG_COPY: u32 = 32u32;
2242pub const DIALOG_DELETE: u32 = 64u32;
2243pub const DIALOG_FOLDER: u32 = 1u32;
2244pub const DIALOG_MESSAGE: u32 = 2u32;
2245pub const DIALOG_MODAL: u32 = 1u32;
2246pub const DIALOG_MOVE: u32 = 16u32;
2247pub const DIALOG_OPTIONS: u32 = 4u32;
2248pub const DIALOG_PROP: u32 = 4u32;
2249pub const DIALOG_SDI: u32 = 2u32;
2250pub const DIR_BACKWARD: u32 = 1u32;
2251pub const DO_NOT_SEND_TO_ORIGINATOR: u32 = 1u32;
2252#[repr(C)]
2253#[derive(Clone, Copy, Debug, PartialEq)]
2254pub struct DTBLBUTTON {
2255 pub ulbLpszLabel: u32,
2256 pub ulFlags: u32,
2257 pub ulPRControl: u32,
2258}
2259impl Default for DTBLBUTTON {
2260 fn default() -> Self {
2261 unsafe { core::mem::zeroed() }
2262 }
2263}
2264#[repr(C)]
2265#[derive(Clone, Copy, Debug, PartialEq)]
2266pub struct DTBLCHECKBOX {
2267 pub ulbLpszLabel: u32,
2268 pub ulFlags: u32,
2269 pub ulPRPropertyName: u32,
2270}
2271impl Default for DTBLCHECKBOX {
2272 fn default() -> Self {
2273 unsafe { core::mem::zeroed() }
2274 }
2275}
2276#[repr(C)]
2277#[derive(Clone, Copy, Debug, PartialEq)]
2278pub struct DTBLCOMBOBOX {
2279 pub ulbLpszCharsAllowed: u32,
2280 pub ulFlags: u32,
2281 pub ulNumCharsAllowed: u32,
2282 pub ulPRPropertyName: u32,
2283 pub ulPRTableName: u32,
2284}
2285impl Default for DTBLCOMBOBOX {
2286 fn default() -> Self {
2287 unsafe { core::mem::zeroed() }
2288 }
2289}
2290#[repr(C)]
2291#[derive(Clone, Copy, Debug, PartialEq)]
2292pub struct DTBLDDLBX {
2293 pub ulFlags: u32,
2294 pub ulPRDisplayProperty: u32,
2295 pub ulPRSetProperty: u32,
2296 pub ulPRTableName: u32,
2297}
2298impl Default for DTBLDDLBX {
2299 fn default() -> Self {
2300 unsafe { core::mem::zeroed() }
2301 }
2302}
2303#[repr(C)]
2304#[derive(Clone, Copy, Debug, PartialEq)]
2305pub struct DTBLEDIT {
2306 pub ulbLpszCharsAllowed: u32,
2307 pub ulFlags: u32,
2308 pub ulNumCharsAllowed: u32,
2309 pub ulPropTag: u32,
2310}
2311impl Default for DTBLEDIT {
2312 fn default() -> Self {
2313 unsafe { core::mem::zeroed() }
2314 }
2315}
2316#[repr(C)]
2317#[derive(Clone, Copy, Debug, PartialEq)]
2318pub struct DTBLGROUPBOX {
2319 pub ulbLpszLabel: u32,
2320 pub ulFlags: u32,
2321}
2322impl Default for DTBLGROUPBOX {
2323 fn default() -> Self {
2324 unsafe { core::mem::zeroed() }
2325 }
2326}
2327#[repr(C)]
2328#[derive(Clone, Copy, Debug, PartialEq)]
2329pub struct DTBLLABEL {
2330 pub ulbLpszLabelName: u32,
2331 pub ulFlags: u32,
2332}
2333impl Default for DTBLLABEL {
2334 fn default() -> Self {
2335 unsafe { core::mem::zeroed() }
2336 }
2337}
2338#[repr(C)]
2339#[derive(Clone, Copy, Debug, PartialEq)]
2340pub struct DTBLLBX {
2341 pub ulFlags: u32,
2342 pub ulPRSetProperty: u32,
2343 pub ulPRTableName: u32,
2344}
2345impl Default for DTBLLBX {
2346 fn default() -> Self {
2347 unsafe { core::mem::zeroed() }
2348 }
2349}
2350#[repr(C)]
2351#[derive(Clone, Copy, Debug, PartialEq)]
2352pub struct DTBLMVDDLBX {
2353 pub ulFlags: u32,
2354 pub ulMVPropTag: u32,
2355}
2356impl Default for DTBLMVDDLBX {
2357 fn default() -> Self {
2358 unsafe { core::mem::zeroed() }
2359 }
2360}
2361#[repr(C)]
2362#[derive(Clone, Copy, Debug, PartialEq)]
2363pub struct DTBLMVLISTBOX {
2364 pub ulFlags: u32,
2365 pub ulMVPropTag: u32,
2366}
2367impl Default for DTBLMVLISTBOX {
2368 fn default() -> Self {
2369 unsafe { core::mem::zeroed() }
2370 }
2371}
2372#[repr(C)]
2373#[derive(Clone, Copy, Debug, PartialEq)]
2374pub struct DTBLPAGE {
2375 pub ulbLpszLabel: u32,
2376 pub ulFlags: u32,
2377 pub ulbLpszComponent: u32,
2378 pub ulContext: u32,
2379}
2380impl Default for DTBLPAGE {
2381 fn default() -> Self {
2382 unsafe { core::mem::zeroed() }
2383 }
2384}
2385#[repr(C)]
2386#[derive(Clone, Copy, Debug, PartialEq)]
2387pub struct DTBLRADIOBUTTON {
2388 pub ulbLpszLabel: u32,
2389 pub ulFlags: u32,
2390 pub ulcButtons: u32,
2391 pub ulPropTag: u32,
2392 pub lReturnValue: i32,
2393}
2394impl Default for DTBLRADIOBUTTON {
2395 fn default() -> Self {
2396 unsafe { core::mem::zeroed() }
2397 }
2398}
2399#[repr(C)]
2400#[derive(Clone, Copy)]
2401pub struct DTCTL {
2402 pub ulCtlType: u32,
2403 pub ulCtlFlags: u32,
2404 pub lpbNotif: *mut u8,
2405 pub cbNotif: u32,
2406 pub lpszFilter: *mut i8,
2407 pub ulItemID: u32,
2408 pub ctl: DTCTL_0,
2409}
2410impl Default for DTCTL {
2411 fn default() -> Self {
2412 unsafe { core::mem::zeroed() }
2413 }
2414}
2415#[repr(C)]
2416#[derive(Clone, Copy)]
2417pub union DTCTL_0 {
2418 pub lpv: *mut core::ffi::c_void,
2419 pub lplabel: *mut DTBLLABEL,
2420 pub lpedit: *mut DTBLEDIT,
2421 pub lplbx: *mut DTBLLBX,
2422 pub lpcombobox: *mut DTBLCOMBOBOX,
2423 pub lpddlbx: *mut DTBLDDLBX,
2424 pub lpcheckbox: *mut DTBLCHECKBOX,
2425 pub lpgroupbox: *mut DTBLGROUPBOX,
2426 pub lpbutton: *mut DTBLBUTTON,
2427 pub lpradiobutton: *mut DTBLRADIOBUTTON,
2428 pub lpmvlbx: *mut DTBLMVLISTBOX,
2429 pub lpmvddlbx: *mut DTBLMVDDLBX,
2430 pub lppage: *mut DTBLPAGE,
2431}
2432impl Default for DTCTL_0 {
2433 fn default() -> Self {
2434 unsafe { core::mem::zeroed() }
2435 }
2436}
2437pub const DTCT_BUTTON: u32 = 7u32;
2438pub const DTCT_CHECKBOX: u32 = 5u32;
2439pub const DTCT_COMBOBOX: u32 = 3u32;
2440pub const DTCT_DDLBX: u32 = 4u32;
2441pub const DTCT_EDIT: u32 = 1u32;
2442pub const DTCT_GROUPBOX: u32 = 6u32;
2443pub const DTCT_LABEL: u32 = 0u32;
2444pub const DTCT_LBX: u32 = 2u32;
2445pub const DTCT_MVDDLBX: u32 = 12u32;
2446pub const DTCT_MVLISTBOX: u32 = 11u32;
2447pub const DTCT_PAGE: u32 = 8u32;
2448pub const DTCT_RADIOBUTTON: u32 = 9u32;
2449pub const DTE_FLAG_ACL_CAPABLE: u32 = 1073741824u32;
2450pub const DTE_FLAG_REMOTE_VALID: u32 = 2147483648u32;
2451pub const DTE_MASK_LOCAL: u32 = 255u32;
2452pub const DTE_MASK_REMOTE: u32 = 65280u32;
2453#[repr(C)]
2454#[derive(Clone, Copy)]
2455pub struct DTPAGE {
2456 pub cctl: u32,
2457 pub lpszResourceName: *mut i8,
2458 pub Anonymous: DTPAGE_0,
2459 pub lpctl: *mut DTCTL,
2460}
2461impl Default for DTPAGE {
2462 fn default() -> Self {
2463 unsafe { core::mem::zeroed() }
2464 }
2465}
2466#[repr(C)]
2467#[derive(Clone, Copy)]
2468pub union DTPAGE_0 {
2469 pub lpszComponent: *mut i8,
2470 pub ulItemID: u32,
2471}
2472impl Default for DTPAGE_0 {
2473 fn default() -> Self {
2474 unsafe { core::mem::zeroed() }
2475 }
2476}
2477pub const DT_ACCEPT_DBCS: u32 = 32u32;
2478pub const DT_AGENT: u32 = 3u32;
2479pub const DT_DISTLIST: u32 = 1u32;
2480pub const DT_EDITABLE: u32 = 2u32;
2481pub const DT_EQUIPMENT: u32 = 8u32;
2482pub const DT_FOLDER: u32 = 16777216u32;
2483pub const DT_FOLDER_LINK: u32 = 33554432u32;
2484pub const DT_FOLDER_SPECIAL: u32 = 67108864u32;
2485pub const DT_FORUM: u32 = 2u32;
2486pub const DT_GLOBAL: u32 = 131072u32;
2487pub const DT_LOCAL: u32 = 196608u32;
2488pub const DT_MAILUSER: u32 = 0u32;
2489pub const DT_MODIFIABLE: u32 = 65536u32;
2490pub const DT_MULTILINE: u32 = 1u32;
2491pub const DT_NOT_SPECIFIC: u32 = 327680u32;
2492pub const DT_ORGANIZATION: u32 = 4u32;
2493pub const DT_PASSWORD_EDIT: u32 = 16u32;
2494pub const DT_PRIVATE_DISTLIST: u32 = 5u32;
2495pub const DT_REMOTE_MAILUSER: u32 = 6u32;
2496pub const DT_REQUIRED: u32 = 4u32;
2497pub const DT_ROOM: u32 = 7u32;
2498pub const DT_SEC_DISTLIST: u32 = 9u32;
2499pub const DT_SET_IMMEDIATE: u32 = 8u32;
2500pub const DT_SET_SELECTION: u32 = 64u32;
2501pub const DT_WAN: u32 = 262144u32;
2502pub const EBF_COMMITIFDIRTY: u32 = 131072u32;
2503pub const EBF_MASK: u32 = 4294901760u32;
2504pub const EBF_RECURSE: u32 = 65536u32;
2505pub const EDITOR_FORMAT_DONTKNOW: u32 = 0u32;
2506pub const EDITOR_FORMAT_HTML: u32 = 2u32;
2507pub const EDITOR_FORMAT_PLAINTEXT: u32 = 1u32;
2508pub const EDITOR_FORMAT_RTF: u32 = 3u32;
2509pub const EDK_RULES_VERSION: u32 = 1u32;
2510pub const EMS_AB_ADDRESS_LOOKUP: u32 = 1u32;
2511#[repr(transparent)]
2512#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2513pub struct ENCODINGTYPE(pub i32);
2514pub const END_DONT_RESEND: u32 = 262144u32;
2515pub const END_RESEND_LATER: u32 = 131072u32;
2516pub const END_RESEND_NOW: u32 = 65536u32;
2517#[repr(C)]
2518#[derive(Clone, Copy, Debug, PartialEq)]
2519pub struct ENTRYID {
2520 pub abFlags: [u8; 4],
2521 pub ab: [u8; 1],
2522}
2523impl Default for ENTRYID {
2524 fn default() -> Self {
2525 unsafe { core::mem::zeroed() }
2526 }
2527}
2528#[repr(C)]
2529#[derive(Clone, Copy, Debug, PartialEq)]
2530pub struct ENUMHEADERROW {
2531 pub hRow: *mut HHEADERROW__,
2532 pub pszHeader: windows_core::PSTR,
2533 pub pszData: windows_core::PSTR,
2534 pub cchData: u32,
2535 pub dwReserved: u32,
2536}
2537impl Default for ENUMHEADERROW {
2538 fn default() -> Self {
2539 unsafe { core::mem::zeroed() }
2540 }
2541}
2542#[repr(C)]
2543#[derive(Clone, Copy, Debug, PartialEq)]
2544pub struct ENUMPROPERTY {
2545 pub pszName: windows_core::PSTR,
2546 pub hRow: *mut HHEADERROW__,
2547 pub dwPropId: u32,
2548}
2549impl Default for ENUMPROPERTY {
2550 fn default() -> Self {
2551 unsafe { core::mem::zeroed() }
2552 }
2553}
2554pub const ENV_BLANK: u32 = 0u32;
2555pub const ENV_MSG_EXT: u32 = 2u32;
2556pub const ENV_RECIP_EXT: u32 = 4u32;
2557pub const ENV_RECIP_NUM: u32 = 1u32;
2558pub const EPF_NONAME: u32 = 1u32;
2559#[repr(C)]
2560#[derive(Clone, Copy, Debug, PartialEq)]
2561pub struct ERROR_NOTIFICATION {
2562 pub cbEntryID: u32,
2563 pub lpEntryID: *mut ENTRYID,
2564 pub scode: i32,
2565 pub ulFlags: u32,
2566 pub lpMAPIError: *mut MAPIERROR,
2567}
2568impl Default for ERROR_NOTIFICATION {
2569 fn default() -> Self {
2570 unsafe { core::mem::zeroed() }
2571 }
2572}
2573pub const EXCHANGE_RM_SET_EXPLICIT_SD: u32 = 1u32;
2574pub const EXCHIVERB_FORWARD: u32 = 104u32;
2575pub const EXCHIVERB_OPEN: u32 = 0u32;
2576pub const EXCHIVERB_PRINT: u32 = 105u32;
2577pub const EXCHIVERB_REPLYTOALL: u32 = 103u32;
2578pub const EXCHIVERB_REPLYTOFOLDER: u32 = 108u32;
2579pub const EXCHIVERB_REPLYTOSENDER: u32 = 102u32;
2580pub const EXCHIVERB_RESERVED_COMPOSE: u32 = 100u32;
2581pub const EXCHIVERB_RESERVED_DELIVERY: u32 = 107u32;
2582pub const EXCHIVERB_RESERVED_OPEN: u32 = 101u32;
2583pub const EXCHIVERB_SAVEAS: u32 = 106u32;
2584#[repr(C)]
2585#[derive(Clone, Copy, Debug, PartialEq)]
2586pub struct EXTENDED_NOTIFICATION {
2587 pub ulEvent: u32,
2588 pub cb: u32,
2589 pub pbEventParameters: *mut u8,
2590}
2591impl Default for EXTENDED_NOTIFICATION {
2592 fn default() -> Self {
2593 unsafe { core::mem::zeroed() }
2594 }
2595}
2596pub const E_ACCT_NOT_FOUND: u32 = 2148303105u32;
2597pub const E_ACCT_WRONG_SORT_ORDER: u32 = 2148303109u32;
2598pub const E_OLK_ALREADY_INITIALIZED: u32 = 2148302850u32;
2599pub const E_OLK_NOT_INITIALIZED: u32 = 2148302853u32;
2600pub const E_OLK_PARAM_NOT_SUPPORTED: u32 = 2148302851u32;
2601pub const E_OLK_PROP_READ_ONLY: u32 = 2148302861u32;
2602pub const E_OLK_REGISTRY: u32 = 2148302850u32;
2603pub const FACILITY_INTERNET: u32 = 12u32;
2604pub type FGETCOMPONENTPATH = Option<
2605 unsafe extern "system" fn(
2606 szcomponent: *mut i8,
2607 szqualifier: *mut i8,
2608 szdllpath: *mut i8,
2609 cchbuffersize: u32,
2610 finstall: windows_core::BOOL,
2611 ) -> windows_core::BOOL,
2612>;
2613pub const FILE_ATTRIBUTE_ARCHIVE: u32 = 32u32;
2614pub const FILE_ATTRIBUTE_DIRECTORY: u32 = 16u32;
2615pub const FILE_ATTRIBUTE_HIDDEN: u32 = 2u32;
2616pub const FILE_ATTRIBUTE_NORMAL: u32 = 128u32;
2617pub const FILE_ATTRIBUTE_READONLY: u32 = 1u32;
2618pub const FILE_ATTRIBUTE_SYSTEM: u32 = 4u32;
2619pub const FILE_ATTRIBUTE_TEMPORARY: u32 = 256u32;
2620pub const FILE_FLAG_RANDOM_ACCESS: u32 = 268435456u32;
2621pub const FILE_FLAG_SEQUENTIAL_SCAN: u32 = 134217728u32;
2622pub const FILE_FLAG_WRITE_THROUGH: u32 = 2147483648u32;
2623pub const FILL_ENTRY: u32 = 1u32;
2624#[repr(C)]
2625#[derive(Clone, Copy, Debug, PartialEq)]
2626pub struct FINDBODY {
2627 pub pszPriType: windows_core::PSTR,
2628 pub pszSubType: windows_core::PSTR,
2629 pub dwReserved: u32,
2630}
2631impl Default for FINDBODY {
2632 fn default() -> Self {
2633 unsafe { core::mem::zeroed() }
2634 }
2635}
2636#[repr(C)]
2637#[derive(Clone, Copy, Debug, PartialEq)]
2638pub struct FINDHEADER {
2639 pub pszHeader: windows_core::PCSTR,
2640 pub dwReserved: u32,
2641}
2642impl Default for FINDHEADER {
2643 fn default() -> Self {
2644 unsafe { core::mem::zeroed() }
2645 }
2646}
2647#[repr(C)]
2648#[derive(Clone, Copy, Debug, PartialEq)]
2649pub struct FLATENTRY {
2650 pub cb: u32,
2651 pub abEntry: [u8; 1],
2652}
2653impl Default for FLATENTRY {
2654 fn default() -> Self {
2655 unsafe { core::mem::zeroed() }
2656 }
2657}
2658#[repr(C)]
2659#[derive(Clone, Copy, Debug, PartialEq)]
2660pub struct FLATENTRYLIST {
2661 pub cEntries: u32,
2662 pub cbEntries: u32,
2663 pub abEntries: [u8; 1],
2664}
2665impl Default for FLATENTRYLIST {
2666 fn default() -> Self {
2667 unsafe { core::mem::zeroed() }
2668 }
2669}
2670#[repr(C)]
2671#[derive(Clone, Copy, Debug, PartialEq)]
2672pub struct FLATMTSIDLIST {
2673 pub cMTSIDs: u32,
2674 pub cbMTSIDs: u32,
2675 pub abMTSIDs: [u8; 1],
2676}
2677impl Default for FLATMTSIDLIST {
2678 fn default() -> Self {
2679 unsafe { core::mem::zeroed() }
2680 }
2681}
2682pub const FLDSTATUS_DELMARKED: u32 = 8u32;
2683pub const FLDSTATUS_HIDDEN: u32 = 4u32;
2684pub const FLDSTATUS_HIGHLIGHTED: u32 = 1u32;
2685pub const FLDSTATUS_TAGGED: u32 = 2u32;
2686pub const FLUSH_ASYNC_OK: u32 = 32u32;
2687pub const FLUSH_DOWNLOAD: u32 = 4u32;
2688pub const FLUSH_FORCE: u32 = 8u32;
2689pub const FLUSH_NO_UI: u32 = 16u32;
2690pub const FLUSH_UPLOAD: u32 = 2u32;
2691pub const FL_FULLSTRING: u32 = 0u32;
2692pub const FL_IGNORECASE: u32 = 65536u32;
2693pub const FL_IGNORENONSPACE: u32 = 131072u32;
2694pub const FL_LOOSE: u32 = 262144u32;
2695pub const FL_PREFIX: u32 = 2u32;
2696pub const FL_SUBSTRING: u32 = 1u32;
2697#[repr(transparent)]
2698#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2699pub struct FNTSYSTYPE(pub i32);
2700pub const FNT_SYS_ICON: FNTSYSTYPE = FNTSYSTYPE(0i32);
2701pub const FNT_SYS_ICON_BOLD: FNTSYSTYPE = FNTSYSTYPE(1i32);
2702pub const FNT_SYS_ICON_STRIKEOUT: FNTSYSTYPE = FNTSYSTYPE(3i32);
2703pub const FNT_SYS_LAST: FNTSYSTYPE = FNTSYSTYPE(4i32);
2704pub const FNT_SYS_MENU: FNTSYSTYPE = FNTSYSTYPE(2i32);
2705pub const FOLDER_COMMON_VIEWS_VALID: u32 = 64u32;
2706pub const FOLDER_DIALOG: u32 = 2u32;
2707pub const FOLDER_FINDER_VALID: u32 = 128u32;
2708pub const FOLDER_GENERIC: u32 = 1u32;
2709pub const FOLDER_IPM_INBOX_VALID: u32 = 2u32;
2710pub const FOLDER_IPM_OUTBOX_VALID: u32 = 4u32;
2711pub const FOLDER_IPM_SENTMAIL_VALID: u32 = 16u32;
2712pub const FOLDER_IPM_SUBTREE_VALID: u32 = 1u32;
2713pub const FOLDER_IPM_WASTEBASKET_VALID: u32 = 8u32;
2714pub const FOLDER_MOVE: u32 = 1u32;
2715pub const FOLDER_ROOT: u32 = 0u32;
2716pub const FOLDER_SEARCH: u32 = 2u32;
2717pub const FOLDER_VIEWS_VALID: u32 = 32u32;
2718pub const FORCE_SAVE: u32 = 4u32;
2719pub const FORCE_SUBMIT: u32 = 1u32;
2720pub const FORCE_XP_CONNECT: u32 = 262144u32;
2721pub const FORCE_XP_DISCONNECT: u32 = 524288u32;
2722pub const FOREGROUND_SEARCH: u32 = 16u32;
2723#[repr(C)]
2724#[derive(Clone, Copy, Debug, PartialEq)]
2725pub struct FORMPRINTSETUP {
2726 pub ulFlags: u32,
2727 pub hDevMode: windows::Win32::Foundation::HGLOBAL,
2728 pub hDevNames: windows::Win32::Foundation::HGLOBAL,
2729 pub ulFirstPageNumber: u32,
2730 pub fPrintAttachments: u32,
2731}
2732impl Default for FORMPRINTSETUP {
2733 fn default() -> Self {
2734 unsafe { core::mem::zeroed() }
2735 }
2736}
2737pub const FORMPROPSET_INTERSECTION: u32 = 1u32;
2738pub const FORMPROPSET_UNION: u32 = 0u32;
2739pub const FPST_ENUM_PROP: u32 = 1u32;
2740pub const FPST_VANILLA: u32 = 0u32;
2741pub const FWD_AS_ATTACHMENT: u32 = 4u32;
2742pub const FWD_DO_NOT_MUNGE_MSG: u32 = 2u32;
2743pub const FWD_PRESERVE_SENDER: u32 = 1u32;
2744#[repr(C)]
2745#[derive(Clone, Copy, Debug, PartialEq)]
2746pub struct FlagList {
2747 pub cFlags: u32,
2748 pub ulFlag: [u32; 1],
2749}
2750impl Default for FlagList {
2751 fn default() -> Self {
2752 unsafe { core::mem::zeroed() }
2753 }
2754}
2755pub const GENERATE_RECEIPT_ONLY: u32 = 16u32;
2756#[repr(C)]
2757#[derive(Clone, Copy, Debug, PartialEq)]
2758pub struct HADDRESS__ {
2759 pub unused: u32,
2760}
2761impl Default for HADDRESS__ {
2762 fn default() -> Self {
2763 unsafe { core::mem::zeroed() }
2764 }
2765}
2766#[repr(C)]
2767#[derive(Clone, Copy, Debug, PartialEq)]
2768pub struct HBODY__ {
2769 pub unused: u32,
2770}
2771impl Default for HBODY__ {
2772 fn default() -> Self {
2773 unsafe { core::mem::zeroed() }
2774 }
2775}
2776#[repr(C)]
2777#[derive(Clone, Copy, Debug, PartialEq)]
2778pub struct HCHARSET__ {
2779 pub unused: u32,
2780}
2781impl Default for HCHARSET__ {
2782 fn default() -> Self {
2783 unsafe { core::mem::zeroed() }
2784 }
2785}
2786#[repr(C)]
2787#[derive(Clone, Copy, Debug, PartialEq)]
2788pub struct HEADERROWINFO {
2789 pub dwRowNumber: u32,
2790 pub cboffStart: u32,
2791 pub cboffColon: u32,
2792 pub cboffEnd: u32,
2793}
2794impl Default for HEADERROWINFO {
2795 fn default() -> Self {
2796 unsafe { core::mem::zeroed() }
2797 }
2798}
2799#[repr(transparent)]
2800#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2801pub struct HEADERTABLEFLAGS(pub i32);
2802pub const HFRMREG_DEFAULT: u32 = 0u32;
2803pub const HFRMREG_FOLDER: u32 = 3u32;
2804pub const HFRMREG_LOCAL: u32 = 1u32;
2805pub const HFRMREG_PERSONAL: u32 = 2u32;
2806pub const HF_NO_DUPLICATES: u32 = 1u32;
2807#[repr(C)]
2808#[derive(Clone, Copy, Debug, PartialEq)]
2809pub struct HHEADERROW__ {
2810 pub unused: u32,
2811}
2812impl Default for HHEADERROW__ {
2813 fn default() -> Self {
2814 unsafe { core::mem::zeroed() }
2815 }
2816}
2817pub const HOOK_CANCEL: u32 = 2u32;
2818pub const HOOK_DELETE: u32 = 1u32;
2819pub const HOOK_INBOUND: u32 = 512u32;
2820pub const HOOK_OUTBOUND: u32 = 1024u32;
2821pub type HPPROVIDERINIT = Option<
2822 unsafe extern "system" fn(
2823 lpsession: windows_core::Ref<'_, IMAPISession>,
2824 hinstance: windows::Win32::Foundation::HINSTANCE,
2825 lpallocatebuffer: LPALLOCATEBUFFER,
2826 lpallocatemore: LPALLOCATEMORE,
2827 lpfreebuffer: LPFREEBUFFER,
2828 lpsectionuid: *mut MAPIUID,
2829 ulflags: u32,
2830 lppspoolerhook: windows_core::OutRef<'_, ISpoolerHook>,
2831 ) -> windows_core::HRESULT,
2832>;
2833pub const HTF_ENUMHANDLESONLY: HEADERTABLEFLAGS = HEADERTABLEFLAGS(2i32);
2834pub const HTF_NAMEINDATA: HEADERTABLEFLAGS = HEADERTABLEFLAGS(1i32);
2835windows_core::imp::define_interface!(
2836 IABContainer,
2837 IABContainer_Vtbl,
2838 0x0002030d_0000_0000_c000_000000000046
2839);
2840impl core::ops::Deref for IABContainer {
2841 type Target = IMAPIContainer;
2842 fn deref(&self) -> &Self::Target {
2843 unsafe { core::mem::transmute(self) }
2844 }
2845}
2846windows_core::imp::interface_hierarchy!(
2847 IABContainer,
2848 windows_core::IUnknown,
2849 IMAPIProp,
2850 IMAPIContainer
2851);
2852impl IABContainer {
2853 pub unsafe fn CreateEntry(
2854 &self,
2855 cbentryid: u32,
2856 lpentryid: *mut ENTRYID,
2857 ulcreateflags: u32,
2858 lppmapipropentry: *mut Option<IMAPIProp>,
2859 ) -> windows_core::Result<()> {
2860 unsafe {
2861 (windows_core::Interface::vtable(self).CreateEntry)(
2862 windows_core::Interface::as_raw(self),
2863 cbentryid,
2864 lpentryid as _,
2865 ulcreateflags,
2866 core::mem::transmute(lppmapipropentry),
2867 )
2868 .ok()
2869 }
2870 }
2871 pub unsafe fn CopyEntries<P2>(
2872 &self,
2873 lpentries: *mut SBinaryArray,
2874 uluiparam: usize,
2875 lpprogress: P2,
2876 ulflags: u32,
2877 ) -> windows_core::Result<()>
2878 where
2879 P2: windows_core::Param<IMAPIProgress>,
2880 {
2881 unsafe {
2882 (windows_core::Interface::vtable(self).CopyEntries)(
2883 windows_core::Interface::as_raw(self),
2884 lpentries as _,
2885 uluiparam,
2886 lpprogress.param().abi(),
2887 ulflags,
2888 )
2889 .ok()
2890 }
2891 }
2892 pub unsafe fn DeleteEntries(
2893 &self,
2894 lpentries: *mut SBinaryArray,
2895 ulflags: u32,
2896 ) -> windows_core::Result<()> {
2897 unsafe {
2898 (windows_core::Interface::vtable(self).DeleteEntries)(
2899 windows_core::Interface::as_raw(self),
2900 lpentries as _,
2901 ulflags,
2902 )
2903 .ok()
2904 }
2905 }
2906 pub unsafe fn ResolveNames(
2907 &self,
2908 lpproptagarray: *mut SPropTagArray,
2909 ulflags: u32,
2910 lpadrlist: *mut ADRLIST,
2911 lpflaglist: *mut FlagList,
2912 ) -> windows_core::Result<()> {
2913 unsafe {
2914 (windows_core::Interface::vtable(self).ResolveNames)(
2915 windows_core::Interface::as_raw(self),
2916 lpproptagarray as _,
2917 ulflags,
2918 lpadrlist as _,
2919 lpflaglist as _,
2920 )
2921 .ok()
2922 }
2923 }
2924}
2925#[repr(C)]
2926pub struct IABContainer_Vtbl {
2927 pub base__: IMAPIContainer_Vtbl,
2928 pub CreateEntry: unsafe extern "system" fn(
2929 *mut core::ffi::c_void,
2930 u32,
2931 *mut ENTRYID,
2932 u32,
2933 *mut *mut core::ffi::c_void,
2934 ) -> windows_core::HRESULT,
2935 pub CopyEntries: unsafe extern "system" fn(
2936 *mut core::ffi::c_void,
2937 *mut SBinaryArray,
2938 usize,
2939 *mut core::ffi::c_void,
2940 u32,
2941 ) -> windows_core::HRESULT,
2942 pub DeleteEntries: unsafe extern "system" fn(
2943 *mut core::ffi::c_void,
2944 *mut SBinaryArray,
2945 u32,
2946 ) -> windows_core::HRESULT,
2947 pub ResolveNames: unsafe extern "system" fn(
2948 *mut core::ffi::c_void,
2949 *mut SPropTagArray,
2950 u32,
2951 *mut ADRLIST,
2952 *mut FlagList,
2953 ) -> windows_core::HRESULT,
2954}
2955pub trait IABContainer_Impl: IMAPIContainer_Impl {
2956 fn CreateEntry(
2957 &self,
2958 cbentryid: u32,
2959 lpentryid: *mut ENTRYID,
2960 ulcreateflags: u32,
2961 lppmapipropentry: windows_core::OutRef<'_, IMAPIProp>,
2962 ) -> windows_core::Result<()>;
2963 fn CopyEntries(
2964 &self,
2965 lpentries: *mut SBinaryArray,
2966 uluiparam: usize,
2967 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
2968 ulflags: u32,
2969 ) -> windows_core::Result<()>;
2970 fn DeleteEntries(&self, lpentries: *mut SBinaryArray, ulflags: u32)
2971 -> windows_core::Result<()>;
2972 fn ResolveNames(
2973 &self,
2974 lpproptagarray: *mut SPropTagArray,
2975 ulflags: u32,
2976 lpadrlist: *mut ADRLIST,
2977 lpflaglist: *mut FlagList,
2978 ) -> windows_core::Result<()>;
2979}
2980impl IABContainer_Vtbl {
2981 pub const fn new<Identity: IABContainer_Impl, const OFFSET: isize>() -> Self {
2982 unsafe extern "system" fn CreateEntry<Identity: IABContainer_Impl, const OFFSET: isize>(
2983 this: *mut core::ffi::c_void,
2984 cbentryid: u32,
2985 lpentryid: *mut ENTRYID,
2986 ulcreateflags: u32,
2987 lppmapipropentry: *mut *mut core::ffi::c_void,
2988 ) -> windows_core::HRESULT {
2989 unsafe {
2990 let this: &Identity =
2991 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2992 IABContainer_Impl::CreateEntry(
2993 this,
2994 core::mem::transmute_copy(&cbentryid),
2995 core::mem::transmute_copy(&lpentryid),
2996 core::mem::transmute_copy(&ulcreateflags),
2997 core::mem::transmute_copy(&lppmapipropentry),
2998 )
2999 .into()
3000 }
3001 }
3002 unsafe extern "system" fn CopyEntries<Identity: IABContainer_Impl, const OFFSET: isize>(
3003 this: *mut core::ffi::c_void,
3004 lpentries: *mut SBinaryArray,
3005 uluiparam: usize,
3006 lpprogress: *mut core::ffi::c_void,
3007 ulflags: u32,
3008 ) -> windows_core::HRESULT {
3009 unsafe {
3010 let this: &Identity =
3011 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3012 IABContainer_Impl::CopyEntries(
3013 this,
3014 core::mem::transmute_copy(&lpentries),
3015 core::mem::transmute_copy(&uluiparam),
3016 core::mem::transmute_copy(&lpprogress),
3017 core::mem::transmute_copy(&ulflags),
3018 )
3019 .into()
3020 }
3021 }
3022 unsafe extern "system" fn DeleteEntries<
3023 Identity: IABContainer_Impl,
3024 const OFFSET: isize,
3025 >(
3026 this: *mut core::ffi::c_void,
3027 lpentries: *mut SBinaryArray,
3028 ulflags: u32,
3029 ) -> windows_core::HRESULT {
3030 unsafe {
3031 let this: &Identity =
3032 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3033 IABContainer_Impl::DeleteEntries(
3034 this,
3035 core::mem::transmute_copy(&lpentries),
3036 core::mem::transmute_copy(&ulflags),
3037 )
3038 .into()
3039 }
3040 }
3041 unsafe extern "system" fn ResolveNames<Identity: IABContainer_Impl, const OFFSET: isize>(
3042 this: *mut core::ffi::c_void,
3043 lpproptagarray: *mut SPropTagArray,
3044 ulflags: u32,
3045 lpadrlist: *mut ADRLIST,
3046 lpflaglist: *mut FlagList,
3047 ) -> windows_core::HRESULT {
3048 unsafe {
3049 let this: &Identity =
3050 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3051 IABContainer_Impl::ResolveNames(
3052 this,
3053 core::mem::transmute_copy(&lpproptagarray),
3054 core::mem::transmute_copy(&ulflags),
3055 core::mem::transmute_copy(&lpadrlist),
3056 core::mem::transmute_copy(&lpflaglist),
3057 )
3058 .into()
3059 }
3060 }
3061 Self {
3062 base__: IMAPIContainer_Vtbl::new::<Identity, OFFSET>(),
3063 CreateEntry: CreateEntry::<Identity, OFFSET>,
3064 CopyEntries: CopyEntries::<Identity, OFFSET>,
3065 DeleteEntries: DeleteEntries::<Identity, OFFSET>,
3066 ResolveNames: ResolveNames::<Identity, OFFSET>,
3067 }
3068 }
3069 pub fn matches(iid: &windows_core::GUID) -> bool {
3070 iid == &<IABContainer as windows_core::Interface>::IID
3071 || iid == &<IMAPIProp as windows_core::Interface>::IID
3072 || iid == &<IMAPIContainer as windows_core::Interface>::IID
3073 }
3074}
3075impl windows_core::RuntimeName for IABContainer {}
3076pub const IABContainer_CopyEntries: METHODS = METHODS(43i32);
3077pub const IABContainer_CreateEntry: METHODS = METHODS(42i32);
3078pub const IABContainer_DeleteEntries: METHODS = METHODS(44i32);
3079pub const IABContainer_ResolveNames: METHODS = METHODS(45i32);
3080windows_core::imp::define_interface!(
3081 IABLogon,
3082 IABLogon_Vtbl,
3083 0x00020314_0000_0000_c000_000000000046
3084);
3085windows_core::imp::interface_hierarchy!(IABLogon, windows_core::IUnknown);
3086impl IABLogon {
3087 pub unsafe fn GetLastError(
3088 &self,
3089 hresult: windows_core::HRESULT,
3090 ulflags: u32,
3091 lppmapierror: *mut *mut MAPIERROR,
3092 ) -> windows_core::Result<()> {
3093 unsafe {
3094 (windows_core::Interface::vtable(self).GetLastError)(
3095 windows_core::Interface::as_raw(self),
3096 hresult,
3097 ulflags,
3098 lppmapierror as _,
3099 )
3100 .ok()
3101 }
3102 }
3103 pub unsafe fn Logoff(&self, ulflags: u32) -> windows_core::Result<()> {
3104 unsafe {
3105 (windows_core::Interface::vtable(self).Logoff)(
3106 windows_core::Interface::as_raw(self),
3107 ulflags,
3108 )
3109 .ok()
3110 }
3111 }
3112 pub unsafe fn OpenEntry(
3113 &self,
3114 cbentryid: u32,
3115 lpentryid: *mut ENTRYID,
3116 lpinterface: *mut windows_core::GUID,
3117 ulflags: u32,
3118 lpulobjtype: *mut u32,
3119 lppunk: *mut Option<windows_core::IUnknown>,
3120 ) -> windows_core::Result<()> {
3121 unsafe {
3122 (windows_core::Interface::vtable(self).OpenEntry)(
3123 windows_core::Interface::as_raw(self),
3124 cbentryid,
3125 lpentryid as _,
3126 lpinterface as _,
3127 ulflags,
3128 lpulobjtype as _,
3129 core::mem::transmute(lppunk),
3130 )
3131 .ok()
3132 }
3133 }
3134 pub unsafe fn CompareEntryIDs(
3135 &self,
3136 cbentryid1: u32,
3137 lpentryid1: *mut ENTRYID,
3138 cbentryid2: u32,
3139 lpentryid2: *mut ENTRYID,
3140 ulflags: u32,
3141 lpulresult: *mut u32,
3142 ) -> windows_core::Result<()> {
3143 unsafe {
3144 (windows_core::Interface::vtable(self).CompareEntryIDs)(
3145 windows_core::Interface::as_raw(self),
3146 cbentryid1,
3147 lpentryid1 as _,
3148 cbentryid2,
3149 lpentryid2 as _,
3150 ulflags,
3151 lpulresult as _,
3152 )
3153 .ok()
3154 }
3155 }
3156 pub unsafe fn Advise<P3>(
3157 &self,
3158 cbentryid: u32,
3159 lpentryid: *mut ENTRYID,
3160 uleventmask: u32,
3161 lpadvisesink: P3,
3162 lpulconnection: *mut usize,
3163 ) -> windows_core::Result<()>
3164 where
3165 P3: windows_core::Param<IMAPIAdviseSink>,
3166 {
3167 unsafe {
3168 (windows_core::Interface::vtable(self).Advise)(
3169 windows_core::Interface::as_raw(self),
3170 cbentryid,
3171 lpentryid as _,
3172 uleventmask,
3173 lpadvisesink.param().abi(),
3174 lpulconnection as _,
3175 )
3176 .ok()
3177 }
3178 }
3179 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
3180 unsafe {
3181 (windows_core::Interface::vtable(self).Unadvise)(
3182 windows_core::Interface::as_raw(self),
3183 ulconnection,
3184 )
3185 .ok()
3186 }
3187 }
3188 pub unsafe fn OpenStatusEntry(
3189 &self,
3190 lpinterface: *mut windows_core::GUID,
3191 ulflags: u32,
3192 lpulobjtype: *mut u32,
3193 lppentry: *mut Option<IMAPIStatus>,
3194 ) -> windows_core::Result<()> {
3195 unsafe {
3196 (windows_core::Interface::vtable(self).OpenStatusEntry)(
3197 windows_core::Interface::as_raw(self),
3198 lpinterface as _,
3199 ulflags,
3200 lpulobjtype as _,
3201 core::mem::transmute(lppentry),
3202 )
3203 .ok()
3204 }
3205 }
3206 pub unsafe fn OpenTemplateID<P3, P6>(
3207 &self,
3208 cbtemplateid: u32,
3209 lptemplateid: *mut ENTRYID,
3210 ultemplateflags: u32,
3211 lpmapipropdata: P3,
3212 lpinterface: *mut windows_core::GUID,
3213 lppmapipropnew: *mut Option<IMAPIProp>,
3214 lpmapipropsibling: P6,
3215 ) -> windows_core::Result<()>
3216 where
3217 P3: windows_core::Param<IMAPIProp>,
3218 P6: windows_core::Param<IMAPIProp>,
3219 {
3220 unsafe {
3221 (windows_core::Interface::vtable(self).OpenTemplateID)(
3222 windows_core::Interface::as_raw(self),
3223 cbtemplateid,
3224 lptemplateid as _,
3225 ultemplateflags,
3226 lpmapipropdata.param().abi(),
3227 lpinterface as _,
3228 core::mem::transmute(lppmapipropnew),
3229 lpmapipropsibling.param().abi(),
3230 )
3231 .ok()
3232 }
3233 }
3234 pub unsafe fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
3235 unsafe {
3236 let mut result__ = core::mem::zeroed();
3237 (windows_core::Interface::vtable(self).GetOneOffTable)(
3238 windows_core::Interface::as_raw(self),
3239 ulflags,
3240 &mut result__,
3241 )
3242 .and_then(|| windows_core::Type::from_abi(result__))
3243 }
3244 }
3245 pub unsafe fn PrepareRecips(
3246 &self,
3247 ulflags: u32,
3248 lpproptagarray: *mut SPropTagArray,
3249 lpreciplist: *mut ADRLIST,
3250 ) -> windows_core::Result<()> {
3251 unsafe {
3252 (windows_core::Interface::vtable(self).PrepareRecips)(
3253 windows_core::Interface::as_raw(self),
3254 ulflags,
3255 lpproptagarray as _,
3256 lpreciplist as _,
3257 )
3258 .ok()
3259 }
3260 }
3261}
3262#[repr(C)]
3263pub struct IABLogon_Vtbl {
3264 pub base__: windows_core::IUnknown_Vtbl,
3265 pub GetLastError: unsafe extern "system" fn(
3266 *mut core::ffi::c_void,
3267 windows_core::HRESULT,
3268 u32,
3269 *mut *mut MAPIERROR,
3270 ) -> windows_core::HRESULT,
3271 pub Logoff: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
3272 pub OpenEntry: unsafe extern "system" fn(
3273 *mut core::ffi::c_void,
3274 u32,
3275 *mut ENTRYID,
3276 *mut windows_core::GUID,
3277 u32,
3278 *mut u32,
3279 *mut *mut core::ffi::c_void,
3280 ) -> windows_core::HRESULT,
3281 pub CompareEntryIDs: unsafe extern "system" fn(
3282 *mut core::ffi::c_void,
3283 u32,
3284 *mut ENTRYID,
3285 u32,
3286 *mut ENTRYID,
3287 u32,
3288 *mut u32,
3289 ) -> windows_core::HRESULT,
3290 pub Advise: unsafe extern "system" fn(
3291 *mut core::ffi::c_void,
3292 u32,
3293 *mut ENTRYID,
3294 u32,
3295 *mut core::ffi::c_void,
3296 *mut usize,
3297 ) -> windows_core::HRESULT,
3298 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
3299 pub OpenStatusEntry: unsafe extern "system" fn(
3300 *mut core::ffi::c_void,
3301 *mut windows_core::GUID,
3302 u32,
3303 *mut u32,
3304 *mut *mut core::ffi::c_void,
3305 ) -> windows_core::HRESULT,
3306 pub OpenTemplateID: unsafe extern "system" fn(
3307 *mut core::ffi::c_void,
3308 u32,
3309 *mut ENTRYID,
3310 u32,
3311 *mut core::ffi::c_void,
3312 *mut windows_core::GUID,
3313 *mut *mut core::ffi::c_void,
3314 *mut core::ffi::c_void,
3315 ) -> windows_core::HRESULT,
3316 pub GetOneOffTable: unsafe extern "system" fn(
3317 *mut core::ffi::c_void,
3318 u32,
3319 *mut *mut core::ffi::c_void,
3320 ) -> windows_core::HRESULT,
3321 pub PrepareRecips: unsafe extern "system" fn(
3322 *mut core::ffi::c_void,
3323 u32,
3324 *mut SPropTagArray,
3325 *mut ADRLIST,
3326 ) -> windows_core::HRESULT,
3327}
3328pub trait IABLogon_Impl: windows_core::IUnknownImpl {
3329 fn GetLastError(
3330 &self,
3331 hresult: windows_core::HRESULT,
3332 ulflags: u32,
3333 lppmapierror: *mut *mut MAPIERROR,
3334 ) -> windows_core::Result<()>;
3335 fn Logoff(&self, ulflags: u32) -> windows_core::Result<()>;
3336 fn OpenEntry(
3337 &self,
3338 cbentryid: u32,
3339 lpentryid: *mut ENTRYID,
3340 lpinterface: *mut windows_core::GUID,
3341 ulflags: u32,
3342 lpulobjtype: *mut u32,
3343 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
3344 ) -> windows_core::Result<()>;
3345 fn CompareEntryIDs(
3346 &self,
3347 cbentryid1: u32,
3348 lpentryid1: *mut ENTRYID,
3349 cbentryid2: u32,
3350 lpentryid2: *mut ENTRYID,
3351 ulflags: u32,
3352 lpulresult: *mut u32,
3353 ) -> windows_core::Result<()>;
3354 fn Advise(
3355 &self,
3356 cbentryid: u32,
3357 lpentryid: *mut ENTRYID,
3358 uleventmask: u32,
3359 lpadvisesink: windows_core::Ref<'_, IMAPIAdviseSink>,
3360 lpulconnection: *mut usize,
3361 ) -> windows_core::Result<()>;
3362 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
3363 fn OpenStatusEntry(
3364 &self,
3365 lpinterface: *mut windows_core::GUID,
3366 ulflags: u32,
3367 lpulobjtype: *mut u32,
3368 lppentry: windows_core::OutRef<'_, IMAPIStatus>,
3369 ) -> windows_core::Result<()>;
3370 fn OpenTemplateID(
3371 &self,
3372 cbtemplateid: u32,
3373 lptemplateid: *mut ENTRYID,
3374 ultemplateflags: u32,
3375 lpmapipropdata: windows_core::Ref<'_, IMAPIProp>,
3376 lpinterface: *mut windows_core::GUID,
3377 lppmapipropnew: windows_core::OutRef<'_, IMAPIProp>,
3378 lpmapipropsibling: windows_core::Ref<'_, IMAPIProp>,
3379 ) -> windows_core::Result<()>;
3380 fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
3381 fn PrepareRecips(
3382 &self,
3383 ulflags: u32,
3384 lpproptagarray: *mut SPropTagArray,
3385 lpreciplist: *mut ADRLIST,
3386 ) -> windows_core::Result<()>;
3387}
3388impl IABLogon_Vtbl {
3389 pub const fn new<Identity: IABLogon_Impl, const OFFSET: isize>() -> Self {
3390 unsafe extern "system" fn GetLastError<Identity: IABLogon_Impl, const OFFSET: isize>(
3391 this: *mut core::ffi::c_void,
3392 hresult: windows_core::HRESULT,
3393 ulflags: u32,
3394 lppmapierror: *mut *mut MAPIERROR,
3395 ) -> windows_core::HRESULT {
3396 unsafe {
3397 let this: &Identity =
3398 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3399 IABLogon_Impl::GetLastError(
3400 this,
3401 core::mem::transmute_copy(&hresult),
3402 core::mem::transmute_copy(&ulflags),
3403 core::mem::transmute_copy(&lppmapierror),
3404 )
3405 .into()
3406 }
3407 }
3408 unsafe extern "system" fn Logoff<Identity: IABLogon_Impl, const OFFSET: isize>(
3409 this: *mut core::ffi::c_void,
3410 ulflags: u32,
3411 ) -> windows_core::HRESULT {
3412 unsafe {
3413 let this: &Identity =
3414 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3415 IABLogon_Impl::Logoff(this, core::mem::transmute_copy(&ulflags)).into()
3416 }
3417 }
3418 unsafe extern "system" fn OpenEntry<Identity: IABLogon_Impl, const OFFSET: isize>(
3419 this: *mut core::ffi::c_void,
3420 cbentryid: u32,
3421 lpentryid: *mut ENTRYID,
3422 lpinterface: *mut windows_core::GUID,
3423 ulflags: u32,
3424 lpulobjtype: *mut u32,
3425 lppunk: *mut *mut core::ffi::c_void,
3426 ) -> windows_core::HRESULT {
3427 unsafe {
3428 let this: &Identity =
3429 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3430 IABLogon_Impl::OpenEntry(
3431 this,
3432 core::mem::transmute_copy(&cbentryid),
3433 core::mem::transmute_copy(&lpentryid),
3434 core::mem::transmute_copy(&lpinterface),
3435 core::mem::transmute_copy(&ulflags),
3436 core::mem::transmute_copy(&lpulobjtype),
3437 core::mem::transmute_copy(&lppunk),
3438 )
3439 .into()
3440 }
3441 }
3442 unsafe extern "system" fn CompareEntryIDs<Identity: IABLogon_Impl, const OFFSET: isize>(
3443 this: *mut core::ffi::c_void,
3444 cbentryid1: u32,
3445 lpentryid1: *mut ENTRYID,
3446 cbentryid2: u32,
3447 lpentryid2: *mut ENTRYID,
3448 ulflags: u32,
3449 lpulresult: *mut u32,
3450 ) -> windows_core::HRESULT {
3451 unsafe {
3452 let this: &Identity =
3453 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3454 IABLogon_Impl::CompareEntryIDs(
3455 this,
3456 core::mem::transmute_copy(&cbentryid1),
3457 core::mem::transmute_copy(&lpentryid1),
3458 core::mem::transmute_copy(&cbentryid2),
3459 core::mem::transmute_copy(&lpentryid2),
3460 core::mem::transmute_copy(&ulflags),
3461 core::mem::transmute_copy(&lpulresult),
3462 )
3463 .into()
3464 }
3465 }
3466 unsafe extern "system" fn Advise<Identity: IABLogon_Impl, const OFFSET: isize>(
3467 this: *mut core::ffi::c_void,
3468 cbentryid: u32,
3469 lpentryid: *mut ENTRYID,
3470 uleventmask: u32,
3471 lpadvisesink: *mut core::ffi::c_void,
3472 lpulconnection: *mut usize,
3473 ) -> windows_core::HRESULT {
3474 unsafe {
3475 let this: &Identity =
3476 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3477 IABLogon_Impl::Advise(
3478 this,
3479 core::mem::transmute_copy(&cbentryid),
3480 core::mem::transmute_copy(&lpentryid),
3481 core::mem::transmute_copy(&uleventmask),
3482 core::mem::transmute_copy(&lpadvisesink),
3483 core::mem::transmute_copy(&lpulconnection),
3484 )
3485 .into()
3486 }
3487 }
3488 unsafe extern "system" fn Unadvise<Identity: IABLogon_Impl, const OFFSET: isize>(
3489 this: *mut core::ffi::c_void,
3490 ulconnection: usize,
3491 ) -> windows_core::HRESULT {
3492 unsafe {
3493 let this: &Identity =
3494 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3495 IABLogon_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
3496 }
3497 }
3498 unsafe extern "system" fn OpenStatusEntry<Identity: IABLogon_Impl, const OFFSET: isize>(
3499 this: *mut core::ffi::c_void,
3500 lpinterface: *mut windows_core::GUID,
3501 ulflags: u32,
3502 lpulobjtype: *mut u32,
3503 lppentry: *mut *mut core::ffi::c_void,
3504 ) -> windows_core::HRESULT {
3505 unsafe {
3506 let this: &Identity =
3507 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3508 IABLogon_Impl::OpenStatusEntry(
3509 this,
3510 core::mem::transmute_copy(&lpinterface),
3511 core::mem::transmute_copy(&ulflags),
3512 core::mem::transmute_copy(&lpulobjtype),
3513 core::mem::transmute_copy(&lppentry),
3514 )
3515 .into()
3516 }
3517 }
3518 unsafe extern "system" fn OpenTemplateID<Identity: IABLogon_Impl, const OFFSET: isize>(
3519 this: *mut core::ffi::c_void,
3520 cbtemplateid: u32,
3521 lptemplateid: *mut ENTRYID,
3522 ultemplateflags: u32,
3523 lpmapipropdata: *mut core::ffi::c_void,
3524 lpinterface: *mut windows_core::GUID,
3525 lppmapipropnew: *mut *mut core::ffi::c_void,
3526 lpmapipropsibling: *mut core::ffi::c_void,
3527 ) -> windows_core::HRESULT {
3528 unsafe {
3529 let this: &Identity =
3530 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3531 IABLogon_Impl::OpenTemplateID(
3532 this,
3533 core::mem::transmute_copy(&cbtemplateid),
3534 core::mem::transmute_copy(&lptemplateid),
3535 core::mem::transmute_copy(&ultemplateflags),
3536 core::mem::transmute_copy(&lpmapipropdata),
3537 core::mem::transmute_copy(&lpinterface),
3538 core::mem::transmute_copy(&lppmapipropnew),
3539 core::mem::transmute_copy(&lpmapipropsibling),
3540 )
3541 .into()
3542 }
3543 }
3544 unsafe extern "system" fn GetOneOffTable<Identity: IABLogon_Impl, const OFFSET: isize>(
3545 this: *mut core::ffi::c_void,
3546 ulflags: u32,
3547 lpptable: *mut *mut core::ffi::c_void,
3548 ) -> windows_core::HRESULT {
3549 unsafe {
3550 let this: &Identity =
3551 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3552 match IABLogon_Impl::GetOneOffTable(this, core::mem::transmute_copy(&ulflags)) {
3553 Ok(ok__) => {
3554 lpptable.write(core::mem::transmute(ok__));
3555 windows_core::HRESULT(0)
3556 }
3557 Err(err) => err.into(),
3558 }
3559 }
3560 }
3561 unsafe extern "system" fn PrepareRecips<Identity: IABLogon_Impl, const OFFSET: isize>(
3562 this: *mut core::ffi::c_void,
3563 ulflags: u32,
3564 lpproptagarray: *mut SPropTagArray,
3565 lpreciplist: *mut ADRLIST,
3566 ) -> windows_core::HRESULT {
3567 unsafe {
3568 let this: &Identity =
3569 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3570 IABLogon_Impl::PrepareRecips(
3571 this,
3572 core::mem::transmute_copy(&ulflags),
3573 core::mem::transmute_copy(&lpproptagarray),
3574 core::mem::transmute_copy(&lpreciplist),
3575 )
3576 .into()
3577 }
3578 }
3579 Self {
3580 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3581 GetLastError: GetLastError::<Identity, OFFSET>,
3582 Logoff: Logoff::<Identity, OFFSET>,
3583 OpenEntry: OpenEntry::<Identity, OFFSET>,
3584 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
3585 Advise: Advise::<Identity, OFFSET>,
3586 Unadvise: Unadvise::<Identity, OFFSET>,
3587 OpenStatusEntry: OpenStatusEntry::<Identity, OFFSET>,
3588 OpenTemplateID: OpenTemplateID::<Identity, OFFSET>,
3589 GetOneOffTable: GetOneOffTable::<Identity, OFFSET>,
3590 PrepareRecips: PrepareRecips::<Identity, OFFSET>,
3591 }
3592 }
3593 pub fn matches(iid: &windows_core::GUID) -> bool {
3594 iid == &<IABLogon as windows_core::Interface>::IID
3595 }
3596}
3597impl windows_core::RuntimeName for IABLogon {}
3598pub const IABLogon_Advise: METHODS = METHODS(88i32);
3599pub const IABLogon_CompareEntryIDs: METHODS = METHODS(87i32);
3600pub const IABLogon_GetLastError: METHODS = METHODS(84i32);
3601pub const IABLogon_GetOneOffTable: METHODS = METHODS(92i32);
3602pub const IABLogon_Logoff: METHODS = METHODS(85i32);
3603pub const IABLogon_OpenEntry: METHODS = METHODS(86i32);
3604pub const IABLogon_OpenStatusEntry: METHODS = METHODS(90i32);
3605pub const IABLogon_OpenTemplateID: METHODS = METHODS(91i32);
3606pub const IABLogon_PrepareRecips: METHODS = METHODS(93i32);
3607pub const IABLogon_Unadvise: METHODS = METHODS(89i32);
3608windows_core::imp::define_interface!(
3609 IABProvider,
3610 IABProvider_Vtbl,
3611 0x00020311_0000_0000_c000_000000000046
3612);
3613windows_core::imp::interface_hierarchy!(IABProvider, windows_core::IUnknown);
3614impl IABProvider {
3615 pub unsafe fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
3616 unsafe {
3617 (windows_core::Interface::vtable(self).Shutdown)(
3618 windows_core::Interface::as_raw(self),
3619 lpulflags as _,
3620 )
3621 .ok()
3622 }
3623 }
3624 pub unsafe fn Logon<P0>(
3625 &self,
3626 lpmapisup: P0,
3627 uluiparam: usize,
3628 lpszprofilename: *mut i8,
3629 ulflags: u32,
3630 lpulpcbsecurity: *mut u32,
3631 lppbsecurity: *mut *mut u8,
3632 lppmapierror: *mut *mut MAPIERROR,
3633 lppablogon: *mut Option<IABLogon>,
3634 ) -> windows_core::Result<()>
3635 where
3636 P0: windows_core::Param<IMAPISupport>,
3637 {
3638 unsafe {
3639 (windows_core::Interface::vtable(self).Logon)(
3640 windows_core::Interface::as_raw(self),
3641 lpmapisup.param().abi(),
3642 uluiparam,
3643 lpszprofilename as _,
3644 ulflags,
3645 lpulpcbsecurity as _,
3646 lppbsecurity as _,
3647 lppmapierror as _,
3648 core::mem::transmute(lppablogon),
3649 )
3650 .ok()
3651 }
3652 }
3653}
3654#[repr(C)]
3655pub struct IABProvider_Vtbl {
3656 pub base__: windows_core::IUnknown_Vtbl,
3657 pub Shutdown:
3658 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
3659 pub Logon: unsafe extern "system" fn(
3660 *mut core::ffi::c_void,
3661 *mut core::ffi::c_void,
3662 usize,
3663 *mut i8,
3664 u32,
3665 *mut u32,
3666 *mut *mut u8,
3667 *mut *mut MAPIERROR,
3668 *mut *mut core::ffi::c_void,
3669 ) -> windows_core::HRESULT,
3670}
3671pub trait IABProvider_Impl: windows_core::IUnknownImpl {
3672 fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
3673 fn Logon(
3674 &self,
3675 lpmapisup: windows_core::Ref<'_, IMAPISupport>,
3676 uluiparam: usize,
3677 lpszprofilename: *mut i8,
3678 ulflags: u32,
3679 lpulpcbsecurity: *mut u32,
3680 lppbsecurity: *mut *mut u8,
3681 lppmapierror: *mut *mut MAPIERROR,
3682 lppablogon: windows_core::OutRef<'_, IABLogon>,
3683 ) -> windows_core::Result<()>;
3684}
3685impl IABProvider_Vtbl {
3686 pub const fn new<Identity: IABProvider_Impl, const OFFSET: isize>() -> Self {
3687 unsafe extern "system" fn Shutdown<Identity: IABProvider_Impl, const OFFSET: isize>(
3688 this: *mut core::ffi::c_void,
3689 lpulflags: *mut u32,
3690 ) -> windows_core::HRESULT {
3691 unsafe {
3692 let this: &Identity =
3693 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3694 IABProvider_Impl::Shutdown(this, core::mem::transmute_copy(&lpulflags)).into()
3695 }
3696 }
3697 unsafe extern "system" fn Logon<Identity: IABProvider_Impl, const OFFSET: isize>(
3698 this: *mut core::ffi::c_void,
3699 lpmapisup: *mut core::ffi::c_void,
3700 uluiparam: usize,
3701 lpszprofilename: *mut i8,
3702 ulflags: u32,
3703 lpulpcbsecurity: *mut u32,
3704 lppbsecurity: *mut *mut u8,
3705 lppmapierror: *mut *mut MAPIERROR,
3706 lppablogon: *mut *mut core::ffi::c_void,
3707 ) -> windows_core::HRESULT {
3708 unsafe {
3709 let this: &Identity =
3710 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3711 IABProvider_Impl::Logon(
3712 this,
3713 core::mem::transmute_copy(&lpmapisup),
3714 core::mem::transmute_copy(&uluiparam),
3715 core::mem::transmute_copy(&lpszprofilename),
3716 core::mem::transmute_copy(&ulflags),
3717 core::mem::transmute_copy(&lpulpcbsecurity),
3718 core::mem::transmute_copy(&lppbsecurity),
3719 core::mem::transmute_copy(&lppmapierror),
3720 core::mem::transmute_copy(&lppablogon),
3721 )
3722 .into()
3723 }
3724 }
3725 Self {
3726 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3727 Shutdown: Shutdown::<Identity, OFFSET>,
3728 Logon: Logon::<Identity, OFFSET>,
3729 }
3730 }
3731 pub fn matches(iid: &windows_core::GUID) -> bool {
3732 iid == &<IABProvider as windows_core::Interface>::IID
3733 }
3734}
3735impl windows_core::RuntimeName for IABProvider {}
3736pub const IABProvider_Logon: METHODS = METHODS(83i32);
3737pub const IABProvider_Shutdown: METHODS = METHODS(82i32);
3738pub const IAP_ADRTYPE: u32 = 4u32;
3739pub const IAP_ALL: u32 = 4294967295u32;
3740pub const IAP_CERTSTATE: u32 = 256u32;
3741pub const IAP_CHARSET: u32 = 1u32;
3742pub const IAP_COOKIE: u32 = 4096u32;
3743pub const IAP_EMAIL: u32 = 32u32;
3744pub const IAP_ENCODING: u32 = 2048u32;
3745pub const IAP_ENCRYPTION_PRINT: u32 = 1024u32;
3746pub const IAP_FRIENDLY: u32 = 8u32;
3747pub const IAP_HANDLE: u32 = 2u32;
3748pub const IAP_SIGNING_PRINT: u32 = 512u32;
3749pub const IAT_ALL: u32 = 4294967295u32;
3750pub const IAT_APPARTO: u32 = 512u32;
3751pub const IAT_BCC: u32 = 16u32;
3752pub const IAT_CC: u32 = 8u32;
3753pub const IAT_FROM: u32 = 1u32;
3754pub const IAT_REPLYTO: u32 = 32u32;
3755pub const IAT_RETRCPTTO: u32 = 128u32;
3756pub const IAT_RETURNPATH: u32 = 64u32;
3757pub const IAT_RR: u32 = 256u32;
3758pub const IAT_SENDER: u32 = 2u32;
3759pub const IAT_TO: u32 = 4u32;
3760pub const IAT_UNKNOWN: u32 = 0u32;
3761windows_core::imp::define_interface!(
3762 IAddrBook,
3763 IAddrBook_Vtbl,
3764 0x00020309_0000_0000_c000_000000000046
3765);
3766impl core::ops::Deref for IAddrBook {
3767 type Target = IMAPIProp;
3768 fn deref(&self) -> &Self::Target {
3769 unsafe { core::mem::transmute(self) }
3770 }
3771}
3772windows_core::imp::interface_hierarchy!(IAddrBook, windows_core::IUnknown, IMAPIProp);
3773impl IAddrBook {
3774 pub unsafe fn OpenEntry(
3775 &self,
3776 cbentryid: u32,
3777 lpentryid: *mut ENTRYID,
3778 lpinterface: *mut windows_core::GUID,
3779 ulflags: u32,
3780 lpulobjtype: *mut u32,
3781 lppunk: *mut Option<windows_core::IUnknown>,
3782 ) -> windows_core::Result<()> {
3783 unsafe {
3784 (windows_core::Interface::vtable(self).OpenEntry)(
3785 windows_core::Interface::as_raw(self),
3786 cbentryid,
3787 lpentryid as _,
3788 lpinterface as _,
3789 ulflags,
3790 lpulobjtype as _,
3791 core::mem::transmute(lppunk),
3792 )
3793 .ok()
3794 }
3795 }
3796 pub unsafe fn CompareEntryIDs(
3797 &self,
3798 cbentryid1: u32,
3799 lpentryid1: *mut ENTRYID,
3800 cbentryid2: u32,
3801 lpentryid2: *mut ENTRYID,
3802 ulflags: u32,
3803 lpulresult: *mut u32,
3804 ) -> windows_core::Result<()> {
3805 unsafe {
3806 (windows_core::Interface::vtable(self).CompareEntryIDs)(
3807 windows_core::Interface::as_raw(self),
3808 cbentryid1,
3809 lpentryid1 as _,
3810 cbentryid2,
3811 lpentryid2 as _,
3812 ulflags,
3813 lpulresult as _,
3814 )
3815 .ok()
3816 }
3817 }
3818 pub unsafe fn Advise<P3>(
3819 &self,
3820 cbentryid: u32,
3821 lpentryid: *mut ENTRYID,
3822 uleventmask: u32,
3823 lpadvisesink: P3,
3824 lpulconnection: *mut usize,
3825 ) -> windows_core::Result<()>
3826 where
3827 P3: windows_core::Param<IMAPIAdviseSink>,
3828 {
3829 unsafe {
3830 (windows_core::Interface::vtable(self).Advise)(
3831 windows_core::Interface::as_raw(self),
3832 cbentryid,
3833 lpentryid as _,
3834 uleventmask,
3835 lpadvisesink.param().abi(),
3836 lpulconnection as _,
3837 )
3838 .ok()
3839 }
3840 }
3841 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
3842 unsafe {
3843 (windows_core::Interface::vtable(self).Unadvise)(
3844 windows_core::Interface::as_raw(self),
3845 ulconnection,
3846 )
3847 .ok()
3848 }
3849 }
3850 pub unsafe fn CreateOneOff(
3851 &self,
3852 lpszname: *mut i8,
3853 lpszadrtype: *mut i8,
3854 lpszaddress: *mut i8,
3855 ulflags: u32,
3856 lpcbentryid: *mut u32,
3857 lppentryid: *mut *mut ENTRYID,
3858 ) -> windows_core::Result<()> {
3859 unsafe {
3860 (windows_core::Interface::vtable(self).CreateOneOff)(
3861 windows_core::Interface::as_raw(self),
3862 lpszname as _,
3863 lpszadrtype as _,
3864 lpszaddress as _,
3865 ulflags,
3866 lpcbentryid as _,
3867 lppentryid as _,
3868 )
3869 .ok()
3870 }
3871 }
3872 pub unsafe fn NewEntry(
3873 &self,
3874 uluiparam: usize,
3875 ulflags: u32,
3876 cbeidcontainer: u32,
3877 lpeidcontainer: *mut ENTRYID,
3878 cbeidnewentrytpl: u32,
3879 lpeidnewentrytpl: *mut ENTRYID,
3880 lpcbeidnewentry: *mut u32,
3881 lppeidnewentry: *mut *mut ENTRYID,
3882 ) -> windows_core::Result<()> {
3883 unsafe {
3884 (windows_core::Interface::vtable(self).NewEntry)(
3885 windows_core::Interface::as_raw(self),
3886 uluiparam,
3887 ulflags,
3888 cbeidcontainer,
3889 lpeidcontainer as _,
3890 cbeidnewentrytpl,
3891 lpeidnewentrytpl as _,
3892 lpcbeidnewentry as _,
3893 lppeidnewentry as _,
3894 )
3895 .ok()
3896 }
3897 }
3898 pub unsafe fn ResolveName(
3899 &self,
3900 uluiparam: usize,
3901 ulflags: u32,
3902 lpsznewentrytitle: *mut i8,
3903 lpadrlist: *mut ADRLIST,
3904 ) -> windows_core::Result<()> {
3905 unsafe {
3906 (windows_core::Interface::vtable(self).ResolveName)(
3907 windows_core::Interface::as_raw(self),
3908 uluiparam,
3909 ulflags,
3910 lpsznewentrytitle as _,
3911 lpadrlist as _,
3912 )
3913 .ok()
3914 }
3915 }
3916 pub unsafe fn Address(
3917 &self,
3918 lpuluiparam: *mut usize,
3919 lpadrparms: *mut ADRPARM,
3920 lppadrlist: *mut *mut ADRLIST,
3921 ) -> windows_core::Result<()> {
3922 unsafe {
3923 (windows_core::Interface::vtable(self).Address)(
3924 windows_core::Interface::as_raw(self),
3925 lpuluiparam as _,
3926 lpadrparms as _,
3927 lppadrlist as _,
3928 )
3929 .ok()
3930 }
3931 }
3932 pub unsafe fn Details(
3933 &self,
3934 lpuluiparam: *mut usize,
3935 lpfndismiss: LPFNDISMISS,
3936 lpvdismisscontext: *mut core::ffi::c_void,
3937 cbentryid: u32,
3938 lpentryid: *mut ENTRYID,
3939 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
3940 lpvbuttoncontext: *mut core::ffi::c_void,
3941 lpszbuttontext: *mut i8,
3942 ulflags: u32,
3943 ) -> windows_core::Result<()> {
3944 unsafe {
3945 (windows_core::Interface::vtable(self).Details)(
3946 windows_core::Interface::as_raw(self),
3947 lpuluiparam as _,
3948 lpfndismiss,
3949 lpvdismisscontext as _,
3950 cbentryid,
3951 lpentryid as _,
3952 lpfbuttoncallback,
3953 lpvbuttoncontext as _,
3954 lpszbuttontext as _,
3955 ulflags,
3956 )
3957 .ok()
3958 }
3959 }
3960 pub unsafe fn RecipOptions(
3961 &self,
3962 uluiparam: usize,
3963 ulflags: u32,
3964 lprecip: *mut ADRENTRY,
3965 ) -> windows_core::Result<()> {
3966 unsafe {
3967 (windows_core::Interface::vtable(self).RecipOptions)(
3968 windows_core::Interface::as_raw(self),
3969 uluiparam,
3970 ulflags,
3971 lprecip as _,
3972 )
3973 .ok()
3974 }
3975 }
3976 pub unsafe fn QueryDefaultRecipOpt(
3977 &self,
3978 lpszadrtype: *mut i8,
3979 ulflags: u32,
3980 lpcvalues: *mut u32,
3981 lppoptions: *mut *mut SPropValue,
3982 ) -> windows_core::Result<()> {
3983 unsafe {
3984 (windows_core::Interface::vtable(self).QueryDefaultRecipOpt)(
3985 windows_core::Interface::as_raw(self),
3986 lpszadrtype as _,
3987 ulflags,
3988 lpcvalues as _,
3989 lppoptions as _,
3990 )
3991 .ok()
3992 }
3993 }
3994 pub unsafe fn GetPAB(
3995 &self,
3996 lpcbentryid: *mut u32,
3997 lppentryid: *mut *mut ENTRYID,
3998 ) -> windows_core::Result<()> {
3999 unsafe {
4000 (windows_core::Interface::vtable(self).GetPAB)(
4001 windows_core::Interface::as_raw(self),
4002 lpcbentryid as _,
4003 lppentryid as _,
4004 )
4005 .ok()
4006 }
4007 }
4008 pub unsafe fn SetPAB(
4009 &self,
4010 cbentryid: u32,
4011 lpentryid: *mut ENTRYID,
4012 ) -> windows_core::Result<()> {
4013 unsafe {
4014 (windows_core::Interface::vtable(self).SetPAB)(
4015 windows_core::Interface::as_raw(self),
4016 cbentryid,
4017 lpentryid as _,
4018 )
4019 .ok()
4020 }
4021 }
4022 pub unsafe fn GetDefaultDir(
4023 &self,
4024 lpcbentryid: *mut u32,
4025 lppentryid: *mut *mut ENTRYID,
4026 ) -> windows_core::Result<()> {
4027 unsafe {
4028 (windows_core::Interface::vtable(self).GetDefaultDir)(
4029 windows_core::Interface::as_raw(self),
4030 lpcbentryid as _,
4031 lppentryid as _,
4032 )
4033 .ok()
4034 }
4035 }
4036 pub unsafe fn SetDefaultDir(
4037 &self,
4038 cbentryid: u32,
4039 lpentryid: *mut ENTRYID,
4040 ) -> windows_core::Result<()> {
4041 unsafe {
4042 (windows_core::Interface::vtable(self).SetDefaultDir)(
4043 windows_core::Interface::as_raw(self),
4044 cbentryid,
4045 lpentryid as _,
4046 )
4047 .ok()
4048 }
4049 }
4050 pub unsafe fn GetSearchPath(
4051 &self,
4052 ulflags: u32,
4053 lppsearchpath: *mut *mut SRowSet,
4054 ) -> windows_core::Result<()> {
4055 unsafe {
4056 (windows_core::Interface::vtable(self).GetSearchPath)(
4057 windows_core::Interface::as_raw(self),
4058 ulflags,
4059 lppsearchpath as _,
4060 )
4061 .ok()
4062 }
4063 }
4064 pub unsafe fn SetSearchPath(
4065 &self,
4066 ulflags: u32,
4067 lpsearchpath: *mut SRowSet,
4068 ) -> windows_core::Result<()> {
4069 unsafe {
4070 (windows_core::Interface::vtable(self).SetSearchPath)(
4071 windows_core::Interface::as_raw(self),
4072 ulflags,
4073 lpsearchpath as _,
4074 )
4075 .ok()
4076 }
4077 }
4078 pub unsafe fn PrepareRecips(
4079 &self,
4080 ulflags: u32,
4081 lpproptagarray: *mut SPropTagArray,
4082 lpreciplist: *mut ADRLIST,
4083 ) -> windows_core::Result<()> {
4084 unsafe {
4085 (windows_core::Interface::vtable(self).PrepareRecips)(
4086 windows_core::Interface::as_raw(self),
4087 ulflags,
4088 lpproptagarray as _,
4089 lpreciplist as _,
4090 )
4091 .ok()
4092 }
4093 }
4094}
4095#[repr(C)]
4096pub struct IAddrBook_Vtbl {
4097 pub base__: IMAPIProp_Vtbl,
4098 pub OpenEntry: unsafe extern "system" fn(
4099 *mut core::ffi::c_void,
4100 u32,
4101 *mut ENTRYID,
4102 *mut windows_core::GUID,
4103 u32,
4104 *mut u32,
4105 *mut *mut core::ffi::c_void,
4106 ) -> windows_core::HRESULT,
4107 pub CompareEntryIDs: unsafe extern "system" fn(
4108 *mut core::ffi::c_void,
4109 u32,
4110 *mut ENTRYID,
4111 u32,
4112 *mut ENTRYID,
4113 u32,
4114 *mut u32,
4115 ) -> windows_core::HRESULT,
4116 pub Advise: unsafe extern "system" fn(
4117 *mut core::ffi::c_void,
4118 u32,
4119 *mut ENTRYID,
4120 u32,
4121 *mut core::ffi::c_void,
4122 *mut usize,
4123 ) -> windows_core::HRESULT,
4124 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
4125 pub CreateOneOff: unsafe extern "system" fn(
4126 *mut core::ffi::c_void,
4127 *mut i8,
4128 *mut i8,
4129 *mut i8,
4130 u32,
4131 *mut u32,
4132 *mut *mut ENTRYID,
4133 ) -> windows_core::HRESULT,
4134 pub NewEntry: unsafe extern "system" fn(
4135 *mut core::ffi::c_void,
4136 usize,
4137 u32,
4138 u32,
4139 *mut ENTRYID,
4140 u32,
4141 *mut ENTRYID,
4142 *mut u32,
4143 *mut *mut ENTRYID,
4144 ) -> windows_core::HRESULT,
4145 pub ResolveName: unsafe extern "system" fn(
4146 *mut core::ffi::c_void,
4147 usize,
4148 u32,
4149 *mut i8,
4150 *mut ADRLIST,
4151 ) -> windows_core::HRESULT,
4152 pub Address: unsafe extern "system" fn(
4153 *mut core::ffi::c_void,
4154 *mut usize,
4155 *mut ADRPARM,
4156 *mut *mut ADRLIST,
4157 ) -> windows_core::HRESULT,
4158 pub Details: unsafe extern "system" fn(
4159 *mut core::ffi::c_void,
4160 *mut usize,
4161 LPFNDISMISS,
4162 *mut core::ffi::c_void,
4163 u32,
4164 *mut ENTRYID,
4165 windows::Win32::System::AddressBook::LPFNBUTTON,
4166 *mut core::ffi::c_void,
4167 *mut i8,
4168 u32,
4169 ) -> windows_core::HRESULT,
4170 pub RecipOptions: unsafe extern "system" fn(
4171 *mut core::ffi::c_void,
4172 usize,
4173 u32,
4174 *mut ADRENTRY,
4175 ) -> windows_core::HRESULT,
4176 pub QueryDefaultRecipOpt: unsafe extern "system" fn(
4177 *mut core::ffi::c_void,
4178 *mut i8,
4179 u32,
4180 *mut u32,
4181 *mut *mut SPropValue,
4182 ) -> windows_core::HRESULT,
4183 pub GetPAB: unsafe extern "system" fn(
4184 *mut core::ffi::c_void,
4185 *mut u32,
4186 *mut *mut ENTRYID,
4187 ) -> windows_core::HRESULT,
4188 pub SetPAB: unsafe extern "system" fn(
4189 *mut core::ffi::c_void,
4190 u32,
4191 *mut ENTRYID,
4192 ) -> windows_core::HRESULT,
4193 pub GetDefaultDir: unsafe extern "system" fn(
4194 *mut core::ffi::c_void,
4195 *mut u32,
4196 *mut *mut ENTRYID,
4197 ) -> windows_core::HRESULT,
4198 pub SetDefaultDir: unsafe extern "system" fn(
4199 *mut core::ffi::c_void,
4200 u32,
4201 *mut ENTRYID,
4202 ) -> windows_core::HRESULT,
4203 pub GetSearchPath: unsafe extern "system" fn(
4204 *mut core::ffi::c_void,
4205 u32,
4206 *mut *mut SRowSet,
4207 ) -> windows_core::HRESULT,
4208 pub SetSearchPath: unsafe extern "system" fn(
4209 *mut core::ffi::c_void,
4210 u32,
4211 *mut SRowSet,
4212 ) -> windows_core::HRESULT,
4213 pub PrepareRecips: unsafe extern "system" fn(
4214 *mut core::ffi::c_void,
4215 u32,
4216 *mut SPropTagArray,
4217 *mut ADRLIST,
4218 ) -> windows_core::HRESULT,
4219}
4220pub trait IAddrBook_Impl: IMAPIProp_Impl {
4221 fn OpenEntry(
4222 &self,
4223 cbentryid: u32,
4224 lpentryid: *mut ENTRYID,
4225 lpinterface: *mut windows_core::GUID,
4226 ulflags: u32,
4227 lpulobjtype: *mut u32,
4228 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
4229 ) -> windows_core::Result<()>;
4230 fn CompareEntryIDs(
4231 &self,
4232 cbentryid1: u32,
4233 lpentryid1: *mut ENTRYID,
4234 cbentryid2: u32,
4235 lpentryid2: *mut ENTRYID,
4236 ulflags: u32,
4237 lpulresult: *mut u32,
4238 ) -> windows_core::Result<()>;
4239 fn Advise(
4240 &self,
4241 cbentryid: u32,
4242 lpentryid: *mut ENTRYID,
4243 uleventmask: u32,
4244 lpadvisesink: windows_core::Ref<'_, IMAPIAdviseSink>,
4245 lpulconnection: *mut usize,
4246 ) -> windows_core::Result<()>;
4247 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
4248 fn CreateOneOff(
4249 &self,
4250 lpszname: *mut i8,
4251 lpszadrtype: *mut i8,
4252 lpszaddress: *mut i8,
4253 ulflags: u32,
4254 lpcbentryid: *mut u32,
4255 lppentryid: *mut *mut ENTRYID,
4256 ) -> windows_core::Result<()>;
4257 fn NewEntry(
4258 &self,
4259 uluiparam: usize,
4260 ulflags: u32,
4261 cbeidcontainer: u32,
4262 lpeidcontainer: *mut ENTRYID,
4263 cbeidnewentrytpl: u32,
4264 lpeidnewentrytpl: *mut ENTRYID,
4265 lpcbeidnewentry: *mut u32,
4266 lppeidnewentry: *mut *mut ENTRYID,
4267 ) -> windows_core::Result<()>;
4268 fn ResolveName(
4269 &self,
4270 uluiparam: usize,
4271 ulflags: u32,
4272 lpsznewentrytitle: *mut i8,
4273 lpadrlist: *mut ADRLIST,
4274 ) -> windows_core::Result<()>;
4275 fn Address(
4276 &self,
4277 lpuluiparam: *mut usize,
4278 lpadrparms: *mut ADRPARM,
4279 lppadrlist: *mut *mut ADRLIST,
4280 ) -> windows_core::Result<()>;
4281 fn Details(
4282 &self,
4283 lpuluiparam: *mut usize,
4284 lpfndismiss: LPFNDISMISS,
4285 lpvdismisscontext: *mut core::ffi::c_void,
4286 cbentryid: u32,
4287 lpentryid: *mut ENTRYID,
4288 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
4289 lpvbuttoncontext: *mut core::ffi::c_void,
4290 lpszbuttontext: *mut i8,
4291 ulflags: u32,
4292 ) -> windows_core::Result<()>;
4293 fn RecipOptions(
4294 &self,
4295 uluiparam: usize,
4296 ulflags: u32,
4297 lprecip: *mut ADRENTRY,
4298 ) -> windows_core::Result<()>;
4299 fn QueryDefaultRecipOpt(
4300 &self,
4301 lpszadrtype: *mut i8,
4302 ulflags: u32,
4303 lpcvalues: *mut u32,
4304 lppoptions: *mut *mut SPropValue,
4305 ) -> windows_core::Result<()>;
4306 fn GetPAB(
4307 &self,
4308 lpcbentryid: *mut u32,
4309 lppentryid: *mut *mut ENTRYID,
4310 ) -> windows_core::Result<()>;
4311 fn SetPAB(&self, cbentryid: u32, lpentryid: *mut ENTRYID) -> windows_core::Result<()>;
4312 fn GetDefaultDir(
4313 &self,
4314 lpcbentryid: *mut u32,
4315 lppentryid: *mut *mut ENTRYID,
4316 ) -> windows_core::Result<()>;
4317 fn SetDefaultDir(&self, cbentryid: u32, lpentryid: *mut ENTRYID) -> windows_core::Result<()>;
4318 fn GetSearchPath(
4319 &self,
4320 ulflags: u32,
4321 lppsearchpath: *mut *mut SRowSet,
4322 ) -> windows_core::Result<()>;
4323 fn SetSearchPath(&self, ulflags: u32, lpsearchpath: *mut SRowSet) -> windows_core::Result<()>;
4324 fn PrepareRecips(
4325 &self,
4326 ulflags: u32,
4327 lpproptagarray: *mut SPropTagArray,
4328 lpreciplist: *mut ADRLIST,
4329 ) -> windows_core::Result<()>;
4330}
4331impl IAddrBook_Vtbl {
4332 pub const fn new<Identity: IAddrBook_Impl, const OFFSET: isize>() -> Self {
4333 unsafe extern "system" fn OpenEntry<Identity: IAddrBook_Impl, const OFFSET: isize>(
4334 this: *mut core::ffi::c_void,
4335 cbentryid: u32,
4336 lpentryid: *mut ENTRYID,
4337 lpinterface: *mut windows_core::GUID,
4338 ulflags: u32,
4339 lpulobjtype: *mut u32,
4340 lppunk: *mut *mut core::ffi::c_void,
4341 ) -> windows_core::HRESULT {
4342 unsafe {
4343 let this: &Identity =
4344 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4345 IAddrBook_Impl::OpenEntry(
4346 this,
4347 core::mem::transmute_copy(&cbentryid),
4348 core::mem::transmute_copy(&lpentryid),
4349 core::mem::transmute_copy(&lpinterface),
4350 core::mem::transmute_copy(&ulflags),
4351 core::mem::transmute_copy(&lpulobjtype),
4352 core::mem::transmute_copy(&lppunk),
4353 )
4354 .into()
4355 }
4356 }
4357 unsafe extern "system" fn CompareEntryIDs<Identity: IAddrBook_Impl, const OFFSET: isize>(
4358 this: *mut core::ffi::c_void,
4359 cbentryid1: u32,
4360 lpentryid1: *mut ENTRYID,
4361 cbentryid2: u32,
4362 lpentryid2: *mut ENTRYID,
4363 ulflags: u32,
4364 lpulresult: *mut u32,
4365 ) -> windows_core::HRESULT {
4366 unsafe {
4367 let this: &Identity =
4368 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4369 IAddrBook_Impl::CompareEntryIDs(
4370 this,
4371 core::mem::transmute_copy(&cbentryid1),
4372 core::mem::transmute_copy(&lpentryid1),
4373 core::mem::transmute_copy(&cbentryid2),
4374 core::mem::transmute_copy(&lpentryid2),
4375 core::mem::transmute_copy(&ulflags),
4376 core::mem::transmute_copy(&lpulresult),
4377 )
4378 .into()
4379 }
4380 }
4381 unsafe extern "system" fn Advise<Identity: IAddrBook_Impl, const OFFSET: isize>(
4382 this: *mut core::ffi::c_void,
4383 cbentryid: u32,
4384 lpentryid: *mut ENTRYID,
4385 uleventmask: u32,
4386 lpadvisesink: *mut core::ffi::c_void,
4387 lpulconnection: *mut usize,
4388 ) -> windows_core::HRESULT {
4389 unsafe {
4390 let this: &Identity =
4391 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4392 IAddrBook_Impl::Advise(
4393 this,
4394 core::mem::transmute_copy(&cbentryid),
4395 core::mem::transmute_copy(&lpentryid),
4396 core::mem::transmute_copy(&uleventmask),
4397 core::mem::transmute_copy(&lpadvisesink),
4398 core::mem::transmute_copy(&lpulconnection),
4399 )
4400 .into()
4401 }
4402 }
4403 unsafe extern "system" fn Unadvise<Identity: IAddrBook_Impl, const OFFSET: isize>(
4404 this: *mut core::ffi::c_void,
4405 ulconnection: usize,
4406 ) -> windows_core::HRESULT {
4407 unsafe {
4408 let this: &Identity =
4409 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4410 IAddrBook_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
4411 }
4412 }
4413 unsafe extern "system" fn CreateOneOff<Identity: IAddrBook_Impl, const OFFSET: isize>(
4414 this: *mut core::ffi::c_void,
4415 lpszname: *mut i8,
4416 lpszadrtype: *mut i8,
4417 lpszaddress: *mut i8,
4418 ulflags: u32,
4419 lpcbentryid: *mut u32,
4420 lppentryid: *mut *mut ENTRYID,
4421 ) -> windows_core::HRESULT {
4422 unsafe {
4423 let this: &Identity =
4424 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4425 IAddrBook_Impl::CreateOneOff(
4426 this,
4427 core::mem::transmute_copy(&lpszname),
4428 core::mem::transmute_copy(&lpszadrtype),
4429 core::mem::transmute_copy(&lpszaddress),
4430 core::mem::transmute_copy(&ulflags),
4431 core::mem::transmute_copy(&lpcbentryid),
4432 core::mem::transmute_copy(&lppentryid),
4433 )
4434 .into()
4435 }
4436 }
4437 unsafe extern "system" fn NewEntry<Identity: IAddrBook_Impl, const OFFSET: isize>(
4438 this: *mut core::ffi::c_void,
4439 uluiparam: usize,
4440 ulflags: u32,
4441 cbeidcontainer: u32,
4442 lpeidcontainer: *mut ENTRYID,
4443 cbeidnewentrytpl: u32,
4444 lpeidnewentrytpl: *mut ENTRYID,
4445 lpcbeidnewentry: *mut u32,
4446 lppeidnewentry: *mut *mut ENTRYID,
4447 ) -> windows_core::HRESULT {
4448 unsafe {
4449 let this: &Identity =
4450 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4451 IAddrBook_Impl::NewEntry(
4452 this,
4453 core::mem::transmute_copy(&uluiparam),
4454 core::mem::transmute_copy(&ulflags),
4455 core::mem::transmute_copy(&cbeidcontainer),
4456 core::mem::transmute_copy(&lpeidcontainer),
4457 core::mem::transmute_copy(&cbeidnewentrytpl),
4458 core::mem::transmute_copy(&lpeidnewentrytpl),
4459 core::mem::transmute_copy(&lpcbeidnewentry),
4460 core::mem::transmute_copy(&lppeidnewentry),
4461 )
4462 .into()
4463 }
4464 }
4465 unsafe extern "system" fn ResolveName<Identity: IAddrBook_Impl, const OFFSET: isize>(
4466 this: *mut core::ffi::c_void,
4467 uluiparam: usize,
4468 ulflags: u32,
4469 lpsznewentrytitle: *mut i8,
4470 lpadrlist: *mut ADRLIST,
4471 ) -> windows_core::HRESULT {
4472 unsafe {
4473 let this: &Identity =
4474 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4475 IAddrBook_Impl::ResolveName(
4476 this,
4477 core::mem::transmute_copy(&uluiparam),
4478 core::mem::transmute_copy(&ulflags),
4479 core::mem::transmute_copy(&lpsznewentrytitle),
4480 core::mem::transmute_copy(&lpadrlist),
4481 )
4482 .into()
4483 }
4484 }
4485 unsafe extern "system" fn Address<Identity: IAddrBook_Impl, const OFFSET: isize>(
4486 this: *mut core::ffi::c_void,
4487 lpuluiparam: *mut usize,
4488 lpadrparms: *mut ADRPARM,
4489 lppadrlist: *mut *mut ADRLIST,
4490 ) -> windows_core::HRESULT {
4491 unsafe {
4492 let this: &Identity =
4493 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4494 IAddrBook_Impl::Address(
4495 this,
4496 core::mem::transmute_copy(&lpuluiparam),
4497 core::mem::transmute_copy(&lpadrparms),
4498 core::mem::transmute_copy(&lppadrlist),
4499 )
4500 .into()
4501 }
4502 }
4503 unsafe extern "system" fn Details<Identity: IAddrBook_Impl, const OFFSET: isize>(
4504 this: *mut core::ffi::c_void,
4505 lpuluiparam: *mut usize,
4506 lpfndismiss: LPFNDISMISS,
4507 lpvdismisscontext: *mut core::ffi::c_void,
4508 cbentryid: u32,
4509 lpentryid: *mut ENTRYID,
4510 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
4511 lpvbuttoncontext: *mut core::ffi::c_void,
4512 lpszbuttontext: *mut i8,
4513 ulflags: u32,
4514 ) -> windows_core::HRESULT {
4515 unsafe {
4516 let this: &Identity =
4517 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4518 IAddrBook_Impl::Details(
4519 this,
4520 core::mem::transmute_copy(&lpuluiparam),
4521 core::mem::transmute_copy(&lpfndismiss),
4522 core::mem::transmute_copy(&lpvdismisscontext),
4523 core::mem::transmute_copy(&cbentryid),
4524 core::mem::transmute_copy(&lpentryid),
4525 core::mem::transmute_copy(&lpfbuttoncallback),
4526 core::mem::transmute_copy(&lpvbuttoncontext),
4527 core::mem::transmute_copy(&lpszbuttontext),
4528 core::mem::transmute_copy(&ulflags),
4529 )
4530 .into()
4531 }
4532 }
4533 unsafe extern "system" fn RecipOptions<Identity: IAddrBook_Impl, const OFFSET: isize>(
4534 this: *mut core::ffi::c_void,
4535 uluiparam: usize,
4536 ulflags: u32,
4537 lprecip: *mut ADRENTRY,
4538 ) -> windows_core::HRESULT {
4539 unsafe {
4540 let this: &Identity =
4541 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4542 IAddrBook_Impl::RecipOptions(
4543 this,
4544 core::mem::transmute_copy(&uluiparam),
4545 core::mem::transmute_copy(&ulflags),
4546 core::mem::transmute_copy(&lprecip),
4547 )
4548 .into()
4549 }
4550 }
4551 unsafe extern "system" fn QueryDefaultRecipOpt<
4552 Identity: IAddrBook_Impl,
4553 const OFFSET: isize,
4554 >(
4555 this: *mut core::ffi::c_void,
4556 lpszadrtype: *mut i8,
4557 ulflags: u32,
4558 lpcvalues: *mut u32,
4559 lppoptions: *mut *mut SPropValue,
4560 ) -> windows_core::HRESULT {
4561 unsafe {
4562 let this: &Identity =
4563 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4564 IAddrBook_Impl::QueryDefaultRecipOpt(
4565 this,
4566 core::mem::transmute_copy(&lpszadrtype),
4567 core::mem::transmute_copy(&ulflags),
4568 core::mem::transmute_copy(&lpcvalues),
4569 core::mem::transmute_copy(&lppoptions),
4570 )
4571 .into()
4572 }
4573 }
4574 unsafe extern "system" fn GetPAB<Identity: IAddrBook_Impl, const OFFSET: isize>(
4575 this: *mut core::ffi::c_void,
4576 lpcbentryid: *mut u32,
4577 lppentryid: *mut *mut ENTRYID,
4578 ) -> windows_core::HRESULT {
4579 unsafe {
4580 let this: &Identity =
4581 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4582 IAddrBook_Impl::GetPAB(
4583 this,
4584 core::mem::transmute_copy(&lpcbentryid),
4585 core::mem::transmute_copy(&lppentryid),
4586 )
4587 .into()
4588 }
4589 }
4590 unsafe extern "system" fn SetPAB<Identity: IAddrBook_Impl, const OFFSET: isize>(
4591 this: *mut core::ffi::c_void,
4592 cbentryid: u32,
4593 lpentryid: *mut ENTRYID,
4594 ) -> windows_core::HRESULT {
4595 unsafe {
4596 let this: &Identity =
4597 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4598 IAddrBook_Impl::SetPAB(
4599 this,
4600 core::mem::transmute_copy(&cbentryid),
4601 core::mem::transmute_copy(&lpentryid),
4602 )
4603 .into()
4604 }
4605 }
4606 unsafe extern "system" fn GetDefaultDir<Identity: IAddrBook_Impl, const OFFSET: isize>(
4607 this: *mut core::ffi::c_void,
4608 lpcbentryid: *mut u32,
4609 lppentryid: *mut *mut ENTRYID,
4610 ) -> windows_core::HRESULT {
4611 unsafe {
4612 let this: &Identity =
4613 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4614 IAddrBook_Impl::GetDefaultDir(
4615 this,
4616 core::mem::transmute_copy(&lpcbentryid),
4617 core::mem::transmute_copy(&lppentryid),
4618 )
4619 .into()
4620 }
4621 }
4622 unsafe extern "system" fn SetDefaultDir<Identity: IAddrBook_Impl, const OFFSET: isize>(
4623 this: *mut core::ffi::c_void,
4624 cbentryid: u32,
4625 lpentryid: *mut ENTRYID,
4626 ) -> windows_core::HRESULT {
4627 unsafe {
4628 let this: &Identity =
4629 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4630 IAddrBook_Impl::SetDefaultDir(
4631 this,
4632 core::mem::transmute_copy(&cbentryid),
4633 core::mem::transmute_copy(&lpentryid),
4634 )
4635 .into()
4636 }
4637 }
4638 unsafe extern "system" fn GetSearchPath<Identity: IAddrBook_Impl, const OFFSET: isize>(
4639 this: *mut core::ffi::c_void,
4640 ulflags: u32,
4641 lppsearchpath: *mut *mut SRowSet,
4642 ) -> windows_core::HRESULT {
4643 unsafe {
4644 let this: &Identity =
4645 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4646 IAddrBook_Impl::GetSearchPath(
4647 this,
4648 core::mem::transmute_copy(&ulflags),
4649 core::mem::transmute_copy(&lppsearchpath),
4650 )
4651 .into()
4652 }
4653 }
4654 unsafe extern "system" fn SetSearchPath<Identity: IAddrBook_Impl, const OFFSET: isize>(
4655 this: *mut core::ffi::c_void,
4656 ulflags: u32,
4657 lpsearchpath: *mut SRowSet,
4658 ) -> windows_core::HRESULT {
4659 unsafe {
4660 let this: &Identity =
4661 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4662 IAddrBook_Impl::SetSearchPath(
4663 this,
4664 core::mem::transmute_copy(&ulflags),
4665 core::mem::transmute_copy(&lpsearchpath),
4666 )
4667 .into()
4668 }
4669 }
4670 unsafe extern "system" fn PrepareRecips<Identity: IAddrBook_Impl, const OFFSET: isize>(
4671 this: *mut core::ffi::c_void,
4672 ulflags: u32,
4673 lpproptagarray: *mut SPropTagArray,
4674 lpreciplist: *mut ADRLIST,
4675 ) -> windows_core::HRESULT {
4676 unsafe {
4677 let this: &Identity =
4678 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4679 IAddrBook_Impl::PrepareRecips(
4680 this,
4681 core::mem::transmute_copy(&ulflags),
4682 core::mem::transmute_copy(&lpproptagarray),
4683 core::mem::transmute_copy(&lpreciplist),
4684 )
4685 .into()
4686 }
4687 }
4688 Self {
4689 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
4690 OpenEntry: OpenEntry::<Identity, OFFSET>,
4691 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
4692 Advise: Advise::<Identity, OFFSET>,
4693 Unadvise: Unadvise::<Identity, OFFSET>,
4694 CreateOneOff: CreateOneOff::<Identity, OFFSET>,
4695 NewEntry: NewEntry::<Identity, OFFSET>,
4696 ResolveName: ResolveName::<Identity, OFFSET>,
4697 Address: Address::<Identity, OFFSET>,
4698 Details: Details::<Identity, OFFSET>,
4699 RecipOptions: RecipOptions::<Identity, OFFSET>,
4700 QueryDefaultRecipOpt: QueryDefaultRecipOpt::<Identity, OFFSET>,
4701 GetPAB: GetPAB::<Identity, OFFSET>,
4702 SetPAB: SetPAB::<Identity, OFFSET>,
4703 GetDefaultDir: GetDefaultDir::<Identity, OFFSET>,
4704 SetDefaultDir: SetDefaultDir::<Identity, OFFSET>,
4705 GetSearchPath: GetSearchPath::<Identity, OFFSET>,
4706 SetSearchPath: SetSearchPath::<Identity, OFFSET>,
4707 PrepareRecips: PrepareRecips::<Identity, OFFSET>,
4708 }
4709 }
4710 pub fn matches(iid: &windows_core::GUID) -> bool {
4711 iid == &<IAddrBook as windows_core::Interface>::IID
4712 || iid == &<IMAPIProp as windows_core::Interface>::IID
4713 }
4714}
4715impl windows_core::RuntimeName for IAddrBook {}
4716windows_core::imp::define_interface!(IAttach, IAttach_Vtbl, 0);
4717impl core::ops::Deref for IAttach {
4718 type Target = IMAPIProp;
4719 fn deref(&self) -> &Self::Target {
4720 unsafe { core::mem::transmute(self) }
4721 }
4722}
4723windows_core::imp::interface_hierarchy!(IAttach, windows_core::IUnknown, IMAPIProp);
4724#[repr(C)]
4725pub struct IAttach_Vtbl {
4726 pub base__: IMAPIProp_Vtbl,
4727}
4728pub trait IAttach_Impl: IMAPIProp_Impl {}
4729impl IAttach_Vtbl {
4730 pub const fn new<Identity: IAttach_Impl, const OFFSET: isize>() -> Self {
4731 Self {
4732 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
4733 }
4734 }
4735 pub fn matches(iid: &windows_core::GUID) -> bool {
4736 iid == &<IAttach as windows_core::Interface>::IID
4737 || iid == &<IMAPIProp as windows_core::Interface>::IID
4738 }
4739}
4740impl windows_core::RuntimeName for IAttach {}
4741pub const IBL_FIRST: BODYLOCATION = BODYLOCATION(2i32);
4742pub const IBL_LAST: BODYLOCATION = BODYLOCATION(3i32);
4743pub const IBL_NEXT: BODYLOCATION = BODYLOCATION(4i32);
4744pub const IBL_PARENT: BODYLOCATION = BODYLOCATION(1i32);
4745pub const IBL_PREVIOUS: BODYLOCATION = BODYLOCATION(5i32);
4746pub const IBL_ROOT: BODYLOCATION = BODYLOCATION(0i32);
4747pub const IBT_ATTACHMENT: IMSGBODYTYPE = IMSGBODYTYPE(1i32);
4748pub const IBT_AUTOATTACH: IMSGBODYTYPE = IMSGBODYTYPE(4i32);
4749pub const IBT_CSETTAGGED: IMSGBODYTYPE = IMSGBODYTYPE(3i32);
4750pub const IBT_EMPTY: IMSGBODYTYPE = IMSGBODYTYPE(2i32);
4751pub const IBT_SECURE: IMSGBODYTYPE = IMSGBODYTYPE(0i32);
4752pub const ICON_INDEX_ACCEPT: u32 = 1029u32;
4753pub const ICON_INDEX_ASSIGNEE_TASK: u32 = 1282u32;
4754pub const ICON_INDEX_ASSIGNER_TASK: u32 = 1283u32;
4755pub const ICON_INDEX_CANCELATION: u32 = 1032u32;
4756pub const ICON_INDEX_CONTACT: u32 = 512u32;
4757pub const ICON_INDEX_DECLINE: u32 = 1030u32;
4758pub const ICON_INDEX_DELIVERY_MAIL: u32 = 264u32;
4759pub const ICON_INDEX_DISTRIBUTION_LIST: u32 = 514u32;
4760pub const ICON_INDEX_FORWARDED_MAIL: u32 = 262u32;
4761pub const ICON_INDEX_INFORMATIONAL_UPDATE: u32 = 1033u32;
4762pub const ICON_INDEX_IRM_COMPOSE_MAIL: u32 = 309u32;
4763pub const ICON_INDEX_IRM_FORWARDED_MAIL: u32 = 307u32;
4764pub const ICON_INDEX_IRM_READ_MAIL: u32 = 305u32;
4765pub const ICON_INDEX_IRM_REPLIED_MAIL: u32 = 308u32;
4766pub const ICON_INDEX_IRM_UNREAD_MAIL: u32 = 306u32;
4767pub const ICON_INDEX_JOURNAL_CONVERSATION: u32 = 1537u32;
4768pub const ICON_INDEX_JOURNAL_DOCUMENT: u32 = 1554u32;
4769pub const ICON_INDEX_JOURNAL_EMAIL_MESSAGE: u32 = 1538u32;
4770pub const ICON_INDEX_JOURNAL_FAX: u32 = 1545u32;
4771pub const ICON_INDEX_JOURNAL_LETTER: u32 = 1548u32;
4772pub const ICON_INDEX_JOURNAL_MEETING: u32 = 1555u32;
4773pub const ICON_INDEX_JOURNAL_MEETING_CANCELLATION: u32 = 1556u32;
4774pub const ICON_INDEX_JOURNAL_MEETING_REQUEST: u32 = 1539u32;
4775pub const ICON_INDEX_JOURNAL_MEETING_RESPONSE: u32 = 1540u32;
4776pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_ACCESS: u32 = 1552u32;
4777pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_EXCEL: u32 = 1550u32;
4778pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_POWER_POINT: u32 = 1551u32;
4779pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_WORD: u32 = 1549u32;
4780pub const ICON_INDEX_JOURNAL_NOTE: u32 = 1544u32;
4781pub const ICON_INDEX_JOURNAL_PHONE_CALL: u32 = 1546u32;
4782pub const ICON_INDEX_JOURNAL_REMOTE_SESSION: u32 = 1557u32;
4783pub const ICON_INDEX_JOURNAL_TASK_REQUEST: u32 = 1542u32;
4784pub const ICON_INDEX_JOURNAL_TASK_RESPONSE: u32 = 1543u32;
4785pub const ICON_INDEX_MAIL_ENCRYPTED: u32 = 272u32;
4786pub const ICON_INDEX_MAIL_ENCRYPTED_FORWARDED: u32 = 277u32;
4787pub const ICON_INDEX_MAIL_ENCRYPTED_READ: u32 = 279u32;
4788pub const ICON_INDEX_MAIL_ENCRYPTED_REPLIED: u32 = 275u32;
4789pub const ICON_INDEX_MAIL_SIGNED: u32 = 271u32;
4790pub const ICON_INDEX_MAIL_SMIME_RECEIPT: u32 = 274u32;
4791pub const ICON_INDEX_MAIL_SMIME_SIGNED: u32 = 273u32;
4792pub const ICON_INDEX_MAIL_SMIME_SIGNED_FORWARDED: u32 = 278u32;
4793pub const ICON_INDEX_MAIL_SMIME_SIGNED_READ: u32 = 280u32;
4794pub const ICON_INDEX_MAIL_SMIME_SIGNED_REPLIED: u32 = 276u32;
4795pub const ICON_INDEX_MEETING_REQUEST: u32 = 1028u32;
4796pub const ICON_INDEX_NEW_MAIL: u32 = 4294967295u32;
4797pub const ICON_INDEX_NONDELIVERY_MAIL: u32 = 266u32;
4798pub const ICON_INDEX_NONREAD_MAIL: u32 = 267u32;
4799pub const ICON_INDEX_OTHER: u32 = 3u32;
4800pub const ICON_INDEX_OUT_OF_OFFICE_MAIL: u32 = 283u32;
4801pub const ICON_INDEX_POST: u32 = 1u32;
4802pub const ICON_INDEX_READ_MAIL: u32 = 256u32;
4803pub const ICON_INDEX_READ_RECEIPT_MAIL: u32 = 265u32;
4804pub const ICON_INDEX_RECALL_F_MAIL: u32 = 269u32;
4805pub const ICON_INDEX_RECALL_MAIL: u32 = 284u32;
4806pub const ICON_INDEX_RECALL_S_MAIL: u32 = 268u32;
4807pub const ICON_INDEX_RECEIPT_MAIL: u32 = 260u32;
4808pub const ICON_INDEX_RECURRING_APPOINTMENT: u32 = 1025u32;
4809pub const ICON_INDEX_RECURRING_MEETING: u32 = 1027u32;
4810pub const ICON_INDEX_REMOTE_MAIL: u32 = 263u32;
4811pub const ICON_INDEX_REPLIED_MAIL: u32 = 261u32;
4812pub const ICON_INDEX_SINGLE_INSTANCE_APPOINTMENT: u32 = 1024u32;
4813pub const ICON_INDEX_SINGLE_INSTANCE_MEETING: u32 = 1026u32;
4814pub const ICON_INDEX_STICKY_NOTE_BLUE: u32 = 768u32;
4815pub const ICON_INDEX_STICKY_NOTE_GREEN: u32 = 769u32;
4816pub const ICON_INDEX_STICKY_NOTE_PINK: u32 = 770u32;
4817pub const ICON_INDEX_STICKY_NOTE_WHITE: u32 = 772u32;
4818pub const ICON_INDEX_STICKY_NOTE_YELLOW: u32 = 771u32;
4819pub const ICON_INDEX_SUBMITTED_MAIL: u32 = 258u32;
4820pub const ICON_INDEX_TASK: u32 = 1280u32;
4821pub const ICON_INDEX_TASK_ACCEPTANCE: u32 = 1285u32;
4822pub const ICON_INDEX_TASK_REJECTION: u32 = 1286u32;
4823pub const ICON_INDEX_TASK_REQUEST: u32 = 1284u32;
4824pub const ICON_INDEX_TENTATIVE: u32 = 1031u32;
4825pub const ICON_INDEX_TRACKED_MAIL: u32 = 304u32;
4826pub const ICON_INDEX_TRACKING_MAIL: u32 = 270u32;
4827pub const ICON_INDEX_UNASSIGNED_RECURRING_TASK: u32 = 1281u32;
4828pub const ICON_INDEX_UNREAD_MAIL: u32 = 257u32;
4829pub const ICON_INDEX_UNSENT_MAIL: u32 = 259u32;
4830windows_core::imp::define_interface!(
4831 IDistList,
4832 IDistList_Vtbl,
4833 0x0002030e_0000_0000_c000_000000000046
4834);
4835impl core::ops::Deref for IDistList {
4836 type Target = IMAPIContainer;
4837 fn deref(&self) -> &Self::Target {
4838 unsafe { core::mem::transmute(self) }
4839 }
4840}
4841windows_core::imp::interface_hierarchy!(
4842 IDistList,
4843 windows_core::IUnknown,
4844 IMAPIProp,
4845 IMAPIContainer
4846);
4847impl IDistList {
4848 pub unsafe fn CreateEntry(
4849 &self,
4850 cbentryid: u32,
4851 lpentryid: *mut ENTRYID,
4852 ulcreateflags: u32,
4853 lppmapipropentry: *mut Option<IMAPIProp>,
4854 ) -> windows_core::Result<()> {
4855 unsafe {
4856 (windows_core::Interface::vtable(self).CreateEntry)(
4857 windows_core::Interface::as_raw(self),
4858 cbentryid,
4859 lpentryid as _,
4860 ulcreateflags,
4861 core::mem::transmute(lppmapipropentry),
4862 )
4863 .ok()
4864 }
4865 }
4866 pub unsafe fn CopyEntries<P2>(
4867 &self,
4868 lpentries: *mut SBinaryArray,
4869 uluiparam: usize,
4870 lpprogress: P2,
4871 ulflags: u32,
4872 ) -> windows_core::Result<()>
4873 where
4874 P2: windows_core::Param<IMAPIProgress>,
4875 {
4876 unsafe {
4877 (windows_core::Interface::vtable(self).CopyEntries)(
4878 windows_core::Interface::as_raw(self),
4879 lpentries as _,
4880 uluiparam,
4881 lpprogress.param().abi(),
4882 ulflags,
4883 )
4884 .ok()
4885 }
4886 }
4887 pub unsafe fn DeleteEntries(
4888 &self,
4889 lpentries: *mut SBinaryArray,
4890 ulflags: u32,
4891 ) -> windows_core::Result<()> {
4892 unsafe {
4893 (windows_core::Interface::vtable(self).DeleteEntries)(
4894 windows_core::Interface::as_raw(self),
4895 lpentries as _,
4896 ulflags,
4897 )
4898 .ok()
4899 }
4900 }
4901 pub unsafe fn ResolveNames(
4902 &self,
4903 lpproptagarray: *mut SPropTagArray,
4904 ulflags: u32,
4905 lpadrlist: *mut ADRLIST,
4906 lpflaglist: *mut FlagList,
4907 ) -> windows_core::Result<()> {
4908 unsafe {
4909 (windows_core::Interface::vtable(self).ResolveNames)(
4910 windows_core::Interface::as_raw(self),
4911 lpproptagarray as _,
4912 ulflags,
4913 lpadrlist as _,
4914 lpflaglist as _,
4915 )
4916 .ok()
4917 }
4918 }
4919}
4920#[repr(C)]
4921pub struct IDistList_Vtbl {
4922 pub base__: IMAPIContainer_Vtbl,
4923 pub CreateEntry: unsafe extern "system" fn(
4924 *mut core::ffi::c_void,
4925 u32,
4926 *mut ENTRYID,
4927 u32,
4928 *mut *mut core::ffi::c_void,
4929 ) -> windows_core::HRESULT,
4930 pub CopyEntries: unsafe extern "system" fn(
4931 *mut core::ffi::c_void,
4932 *mut SBinaryArray,
4933 usize,
4934 *mut core::ffi::c_void,
4935 u32,
4936 ) -> windows_core::HRESULT,
4937 pub DeleteEntries: unsafe extern "system" fn(
4938 *mut core::ffi::c_void,
4939 *mut SBinaryArray,
4940 u32,
4941 ) -> windows_core::HRESULT,
4942 pub ResolveNames: unsafe extern "system" fn(
4943 *mut core::ffi::c_void,
4944 *mut SPropTagArray,
4945 u32,
4946 *mut ADRLIST,
4947 *mut FlagList,
4948 ) -> windows_core::HRESULT,
4949}
4950pub trait IDistList_Impl: IMAPIContainer_Impl {
4951 fn CreateEntry(
4952 &self,
4953 cbentryid: u32,
4954 lpentryid: *mut ENTRYID,
4955 ulcreateflags: u32,
4956 lppmapipropentry: windows_core::OutRef<'_, IMAPIProp>,
4957 ) -> windows_core::Result<()>;
4958 fn CopyEntries(
4959 &self,
4960 lpentries: *mut SBinaryArray,
4961 uluiparam: usize,
4962 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
4963 ulflags: u32,
4964 ) -> windows_core::Result<()>;
4965 fn DeleteEntries(&self, lpentries: *mut SBinaryArray, ulflags: u32)
4966 -> windows_core::Result<()>;
4967 fn ResolveNames(
4968 &self,
4969 lpproptagarray: *mut SPropTagArray,
4970 ulflags: u32,
4971 lpadrlist: *mut ADRLIST,
4972 lpflaglist: *mut FlagList,
4973 ) -> windows_core::Result<()>;
4974}
4975impl IDistList_Vtbl {
4976 pub const fn new<Identity: IDistList_Impl, const OFFSET: isize>() -> Self {
4977 unsafe extern "system" fn CreateEntry<Identity: IDistList_Impl, const OFFSET: isize>(
4978 this: *mut core::ffi::c_void,
4979 cbentryid: u32,
4980 lpentryid: *mut ENTRYID,
4981 ulcreateflags: u32,
4982 lppmapipropentry: *mut *mut core::ffi::c_void,
4983 ) -> windows_core::HRESULT {
4984 unsafe {
4985 let this: &Identity =
4986 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4987 IDistList_Impl::CreateEntry(
4988 this,
4989 core::mem::transmute_copy(&cbentryid),
4990 core::mem::transmute_copy(&lpentryid),
4991 core::mem::transmute_copy(&ulcreateflags),
4992 core::mem::transmute_copy(&lppmapipropentry),
4993 )
4994 .into()
4995 }
4996 }
4997 unsafe extern "system" fn CopyEntries<Identity: IDistList_Impl, const OFFSET: isize>(
4998 this: *mut core::ffi::c_void,
4999 lpentries: *mut SBinaryArray,
5000 uluiparam: usize,
5001 lpprogress: *mut core::ffi::c_void,
5002 ulflags: u32,
5003 ) -> windows_core::HRESULT {
5004 unsafe {
5005 let this: &Identity =
5006 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5007 IDistList_Impl::CopyEntries(
5008 this,
5009 core::mem::transmute_copy(&lpentries),
5010 core::mem::transmute_copy(&uluiparam),
5011 core::mem::transmute_copy(&lpprogress),
5012 core::mem::transmute_copy(&ulflags),
5013 )
5014 .into()
5015 }
5016 }
5017 unsafe extern "system" fn DeleteEntries<Identity: IDistList_Impl, const OFFSET: isize>(
5018 this: *mut core::ffi::c_void,
5019 lpentries: *mut SBinaryArray,
5020 ulflags: u32,
5021 ) -> windows_core::HRESULT {
5022 unsafe {
5023 let this: &Identity =
5024 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5025 IDistList_Impl::DeleteEntries(
5026 this,
5027 core::mem::transmute_copy(&lpentries),
5028 core::mem::transmute_copy(&ulflags),
5029 )
5030 .into()
5031 }
5032 }
5033 unsafe extern "system" fn ResolveNames<Identity: IDistList_Impl, const OFFSET: isize>(
5034 this: *mut core::ffi::c_void,
5035 lpproptagarray: *mut SPropTagArray,
5036 ulflags: u32,
5037 lpadrlist: *mut ADRLIST,
5038 lpflaglist: *mut FlagList,
5039 ) -> windows_core::HRESULT {
5040 unsafe {
5041 let this: &Identity =
5042 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5043 IDistList_Impl::ResolveNames(
5044 this,
5045 core::mem::transmute_copy(&lpproptagarray),
5046 core::mem::transmute_copy(&ulflags),
5047 core::mem::transmute_copy(&lpadrlist),
5048 core::mem::transmute_copy(&lpflaglist),
5049 )
5050 .into()
5051 }
5052 }
5053 Self {
5054 base__: IMAPIContainer_Vtbl::new::<Identity, OFFSET>(),
5055 CreateEntry: CreateEntry::<Identity, OFFSET>,
5056 CopyEntries: CopyEntries::<Identity, OFFSET>,
5057 DeleteEntries: DeleteEntries::<Identity, OFFSET>,
5058 ResolveNames: ResolveNames::<Identity, OFFSET>,
5059 }
5060 }
5061 pub fn matches(iid: &windows_core::GUID) -> bool {
5062 iid == &<IDistList as windows_core::Interface>::IID
5063 || iid == &<IMAPIProp as windows_core::Interface>::IID
5064 || iid == &<IMAPIContainer as windows_core::Interface>::IID
5065 }
5066}
5067impl windows_core::RuntimeName for IDistList {}
5068pub const IDistList_CopyEntries: METHODS = METHODS(47i32);
5069pub const IDistList_CreateEntry: METHODS = METHODS(46i32);
5070pub const IDistList_DeleteEntries: METHODS = METHODS(48i32);
5071pub const IDistList_ResolveNames: METHODS = METHODS(49i32);
5072pub const IET_7BIT: ENCODINGTYPE = ENCODINGTYPE(4i32);
5073pub const IET_8BIT: ENCODINGTYPE = ENCODINGTYPE(5i32);
5074pub const IET_BASE64: ENCODINGTYPE = ENCODINGTYPE(1i32);
5075pub const IET_BINARY: ENCODINGTYPE = ENCODINGTYPE(0i32);
5076pub const IET_BINHEX40: ENCODINGTYPE = ENCODINGTYPE(12i32);
5077pub const IET_CURRENT: ENCODINGTYPE = ENCODINGTYPE(10i32);
5078pub const IET_ENCODED: ENCODINGTYPE = ENCODINGTYPE(9i32);
5079pub const IET_INETCSET: ENCODINGTYPE = ENCODINGTYPE(6i32);
5080pub const IET_LAST: ENCODINGTYPE = ENCODINGTYPE(13i32);
5081pub const IET_QP: ENCODINGTYPE = ENCODINGTYPE(3i32);
5082pub const IET_RFC1522: ENCODINGTYPE = ENCODINGTYPE(8i32);
5083pub const IET_UNICODE: ENCODINGTYPE = ENCODINGTYPE(7i32);
5084pub const IET_UNKNOWN: ENCODINGTYPE = ENCODINGTYPE(11i32);
5085pub const IET_UUENCODE: ENCODINGTYPE = ENCODINGTYPE(2i32);
5086windows_core::imp::define_interface!(
5087 IExchangeBadItemCallback,
5088 IExchangeBadItemCallback_Vtbl,
5089 0x1df85ab7_4d20_4a57_b170_2f062136c1d6
5090);
5091windows_core::imp::interface_hierarchy!(IExchangeBadItemCallback, windows_core::IUnknown);
5092impl IExchangeBadItemCallback {
5093 pub unsafe fn BadItem<P2>(
5094 &self,
5095 hresult: windows_core::HRESULT,
5096 ulflags: u32,
5097 lpwszfoldername: P2,
5098 lpsbfoldereid: *mut SBinary,
5099 cvalues: u32,
5100 lpproparray: *mut SPropValue,
5101 ) -> windows_core::Result<()>
5102 where
5103 P2: windows_core::Param<windows_core::PCWSTR>,
5104 {
5105 unsafe {
5106 (windows_core::Interface::vtable(self).BadItem)(
5107 windows_core::Interface::as_raw(self),
5108 hresult,
5109 ulflags,
5110 lpwszfoldername.param().abi(),
5111 lpsbfoldereid as _,
5112 cvalues,
5113 lpproparray as _,
5114 )
5115 .ok()
5116 }
5117 }
5118}
5119#[repr(C)]
5120pub struct IExchangeBadItemCallback_Vtbl {
5121 pub base__: windows_core::IUnknown_Vtbl,
5122 pub BadItem: unsafe extern "system" fn(
5123 *mut core::ffi::c_void,
5124 windows_core::HRESULT,
5125 u32,
5126 windows_core::PCWSTR,
5127 *mut SBinary,
5128 u32,
5129 *mut SPropValue,
5130 ) -> windows_core::HRESULT,
5131}
5132pub trait IExchangeBadItemCallback_Impl: windows_core::IUnknownImpl {
5133 fn BadItem(
5134 &self,
5135 hresult: windows_core::HRESULT,
5136 ulflags: u32,
5137 lpwszfoldername: &windows_core::PCWSTR,
5138 lpsbfoldereid: *mut SBinary,
5139 cvalues: u32,
5140 lpproparray: *mut SPropValue,
5141 ) -> windows_core::Result<()>;
5142}
5143impl IExchangeBadItemCallback_Vtbl {
5144 pub const fn new<Identity: IExchangeBadItemCallback_Impl, const OFFSET: isize>() -> Self {
5145 unsafe extern "system" fn BadItem<
5146 Identity: IExchangeBadItemCallback_Impl,
5147 const OFFSET: isize,
5148 >(
5149 this: *mut core::ffi::c_void,
5150 hresult: windows_core::HRESULT,
5151 ulflags: u32,
5152 lpwszfoldername: windows_core::PCWSTR,
5153 lpsbfoldereid: *mut SBinary,
5154 cvalues: u32,
5155 lpproparray: *mut SPropValue,
5156 ) -> windows_core::HRESULT {
5157 unsafe {
5158 let this: &Identity =
5159 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5160 IExchangeBadItemCallback_Impl::BadItem(
5161 this,
5162 core::mem::transmute_copy(&hresult),
5163 core::mem::transmute_copy(&ulflags),
5164 core::mem::transmute(&lpwszfoldername),
5165 core::mem::transmute_copy(&lpsbfoldereid),
5166 core::mem::transmute_copy(&cvalues),
5167 core::mem::transmute_copy(&lpproparray),
5168 )
5169 .into()
5170 }
5171 }
5172 Self {
5173 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5174 BadItem: BadItem::<Identity, OFFSET>,
5175 }
5176 }
5177 pub fn matches(iid: &windows_core::GUID) -> bool {
5178 iid == &<IExchangeBadItemCallback as windows_core::Interface>::IID
5179 }
5180}
5181impl windows_core::RuntimeName for IExchangeBadItemCallback {}
5182windows_core::imp::define_interface!(IExchangeChangeAdviseSink, IExchangeChangeAdviseSink_Vtbl, 0);
5183windows_core::imp::interface_hierarchy!(IExchangeChangeAdviseSink, windows_core::IUnknown);
5184impl IExchangeChangeAdviseSink {
5185 pub unsafe fn OnNotify(&self, ulflags: u32, lpentrylist: *mut SBinaryArray) -> u32 {
5186 unsafe {
5187 (windows_core::Interface::vtable(self).OnNotify)(
5188 windows_core::Interface::as_raw(self),
5189 ulflags,
5190 lpentrylist as _,
5191 )
5192 }
5193 }
5194}
5195#[repr(C)]
5196pub struct IExchangeChangeAdviseSink_Vtbl {
5197 pub base__: windows_core::IUnknown_Vtbl,
5198 pub OnNotify: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut SBinaryArray) -> u32,
5199}
5200pub trait IExchangeChangeAdviseSink_Impl: windows_core::IUnknownImpl {
5201 fn OnNotify(&self, ulflags: u32, lpentrylist: *mut SBinaryArray) -> u32;
5202}
5203impl IExchangeChangeAdviseSink_Vtbl {
5204 pub const fn new<Identity: IExchangeChangeAdviseSink_Impl, const OFFSET: isize>() -> Self {
5205 unsafe extern "system" fn OnNotify<
5206 Identity: IExchangeChangeAdviseSink_Impl,
5207 const OFFSET: isize,
5208 >(
5209 this: *mut core::ffi::c_void,
5210 ulflags: u32,
5211 lpentrylist: *mut SBinaryArray,
5212 ) -> u32 {
5213 unsafe {
5214 let this: &Identity =
5215 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5216 IExchangeChangeAdviseSink_Impl::OnNotify(
5217 this,
5218 core::mem::transmute_copy(&ulflags),
5219 core::mem::transmute_copy(&lpentrylist),
5220 )
5221 }
5222 }
5223 Self {
5224 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5225 OnNotify: OnNotify::<Identity, OFFSET>,
5226 }
5227 }
5228 pub fn matches(iid: &windows_core::GUID) -> bool {
5229 iid == &<IExchangeChangeAdviseSink as windows_core::Interface>::IID
5230 }
5231}
5232impl windows_core::RuntimeName for IExchangeChangeAdviseSink {}
5233windows_core::imp::define_interface!(
5234 IExchangeChangeAdvisor,
5235 IExchangeChangeAdvisor_Vtbl,
5236 0x1e300720_a839_11cf_bde0_00004c7531e3
5237);
5238windows_core::imp::interface_hierarchy!(IExchangeChangeAdvisor, windows_core::IUnknown);
5239impl IExchangeChangeAdvisor {
5240 pub unsafe fn GetLastError(
5241 &self,
5242 hresult: windows_core::HRESULT,
5243 ulflags: u32,
5244 lppmapierror: *mut *mut MAPIERROR,
5245 ) -> windows_core::Result<()> {
5246 unsafe {
5247 (windows_core::Interface::vtable(self).GetLastError)(
5248 windows_core::Interface::as_raw(self),
5249 hresult,
5250 ulflags,
5251 lppmapierror as _,
5252 )
5253 .ok()
5254 }
5255 }
5256 pub unsafe fn Config<P0, P2>(
5257 &self,
5258 lpstream: P0,
5259 lpguid: *mut windows_core::GUID,
5260 lpadvisesink: P2,
5261 ulflags: u32,
5262 ) -> windows_core::Result<()>
5263 where
5264 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5265 P2: windows_core::Param<IExchangeChangeAdviseSink>,
5266 {
5267 unsafe {
5268 (windows_core::Interface::vtable(self).Config)(
5269 windows_core::Interface::as_raw(self),
5270 lpstream.param().abi(),
5271 lpguid as _,
5272 lpadvisesink.param().abi(),
5273 ulflags,
5274 )
5275 .ok()
5276 }
5277 }
5278 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
5279 where
5280 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5281 {
5282 unsafe {
5283 (windows_core::Interface::vtable(self).UpdateState)(
5284 windows_core::Interface::as_raw(self),
5285 lpstream.param().abi(),
5286 )
5287 .ok()
5288 }
5289 }
5290 pub unsafe fn AddKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
5291 unsafe {
5292 (windows_core::Interface::vtable(self).AddKeys)(
5293 windows_core::Interface::as_raw(self),
5294 lpentrylist as _,
5295 )
5296 .ok()
5297 }
5298 }
5299 pub unsafe fn RemoveKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
5300 unsafe {
5301 (windows_core::Interface::vtable(self).RemoveKeys)(
5302 windows_core::Interface::as_raw(self),
5303 lpentrylist as _,
5304 )
5305 .ok()
5306 }
5307 }
5308}
5309#[repr(C)]
5310pub struct IExchangeChangeAdvisor_Vtbl {
5311 pub base__: windows_core::IUnknown_Vtbl,
5312 pub GetLastError: unsafe extern "system" fn(
5313 *mut core::ffi::c_void,
5314 windows_core::HRESULT,
5315 u32,
5316 *mut *mut MAPIERROR,
5317 ) -> windows_core::HRESULT,
5318 pub Config: unsafe extern "system" fn(
5319 *mut core::ffi::c_void,
5320 *mut core::ffi::c_void,
5321 *mut windows_core::GUID,
5322 *mut core::ffi::c_void,
5323 u32,
5324 ) -> windows_core::HRESULT,
5325 pub UpdateState: unsafe extern "system" fn(
5326 *mut core::ffi::c_void,
5327 *mut core::ffi::c_void,
5328 ) -> windows_core::HRESULT,
5329 pub AddKeys: unsafe extern "system" fn(
5330 *mut core::ffi::c_void,
5331 *mut SBinaryArray,
5332 ) -> windows_core::HRESULT,
5333 pub RemoveKeys: unsafe extern "system" fn(
5334 *mut core::ffi::c_void,
5335 *mut SBinaryArray,
5336 ) -> windows_core::HRESULT,
5337}
5338pub trait IExchangeChangeAdvisor_Impl: windows_core::IUnknownImpl {
5339 fn GetLastError(
5340 &self,
5341 hresult: windows_core::HRESULT,
5342 ulflags: u32,
5343 lppmapierror: *mut *mut MAPIERROR,
5344 ) -> windows_core::Result<()>;
5345 fn Config(
5346 &self,
5347 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
5348 lpguid: *mut windows_core::GUID,
5349 lpadvisesink: windows_core::Ref<'_, IExchangeChangeAdviseSink>,
5350 ulflags: u32,
5351 ) -> windows_core::Result<()>;
5352 fn UpdateState(
5353 &self,
5354 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
5355 ) -> windows_core::Result<()>;
5356 fn AddKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
5357 fn RemoveKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
5358}
5359impl IExchangeChangeAdvisor_Vtbl {
5360 pub const fn new<Identity: IExchangeChangeAdvisor_Impl, const OFFSET: isize>() -> Self {
5361 unsafe extern "system" fn GetLastError<
5362 Identity: IExchangeChangeAdvisor_Impl,
5363 const OFFSET: isize,
5364 >(
5365 this: *mut core::ffi::c_void,
5366 hresult: windows_core::HRESULT,
5367 ulflags: u32,
5368 lppmapierror: *mut *mut MAPIERROR,
5369 ) -> windows_core::HRESULT {
5370 unsafe {
5371 let this: &Identity =
5372 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5373 IExchangeChangeAdvisor_Impl::GetLastError(
5374 this,
5375 core::mem::transmute_copy(&hresult),
5376 core::mem::transmute_copy(&ulflags),
5377 core::mem::transmute_copy(&lppmapierror),
5378 )
5379 .into()
5380 }
5381 }
5382 unsafe extern "system" fn Config<
5383 Identity: IExchangeChangeAdvisor_Impl,
5384 const OFFSET: isize,
5385 >(
5386 this: *mut core::ffi::c_void,
5387 lpstream: *mut core::ffi::c_void,
5388 lpguid: *mut windows_core::GUID,
5389 lpadvisesink: *mut core::ffi::c_void,
5390 ulflags: u32,
5391 ) -> windows_core::HRESULT {
5392 unsafe {
5393 let this: &Identity =
5394 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5395 IExchangeChangeAdvisor_Impl::Config(
5396 this,
5397 core::mem::transmute_copy(&lpstream),
5398 core::mem::transmute_copy(&lpguid),
5399 core::mem::transmute_copy(&lpadvisesink),
5400 core::mem::transmute_copy(&ulflags),
5401 )
5402 .into()
5403 }
5404 }
5405 unsafe extern "system" fn UpdateState<
5406 Identity: IExchangeChangeAdvisor_Impl,
5407 const OFFSET: isize,
5408 >(
5409 this: *mut core::ffi::c_void,
5410 lpstream: *mut core::ffi::c_void,
5411 ) -> windows_core::HRESULT {
5412 unsafe {
5413 let this: &Identity =
5414 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5415 IExchangeChangeAdvisor_Impl::UpdateState(this, core::mem::transmute_copy(&lpstream))
5416 .into()
5417 }
5418 }
5419 unsafe extern "system" fn AddKeys<
5420 Identity: IExchangeChangeAdvisor_Impl,
5421 const OFFSET: isize,
5422 >(
5423 this: *mut core::ffi::c_void,
5424 lpentrylist: *mut SBinaryArray,
5425 ) -> windows_core::HRESULT {
5426 unsafe {
5427 let this: &Identity =
5428 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5429 IExchangeChangeAdvisor_Impl::AddKeys(this, core::mem::transmute_copy(&lpentrylist))
5430 .into()
5431 }
5432 }
5433 unsafe extern "system" fn RemoveKeys<
5434 Identity: IExchangeChangeAdvisor_Impl,
5435 const OFFSET: isize,
5436 >(
5437 this: *mut core::ffi::c_void,
5438 lpentrylist: *mut SBinaryArray,
5439 ) -> windows_core::HRESULT {
5440 unsafe {
5441 let this: &Identity =
5442 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5443 IExchangeChangeAdvisor_Impl::RemoveKeys(
5444 this,
5445 core::mem::transmute_copy(&lpentrylist),
5446 )
5447 .into()
5448 }
5449 }
5450 Self {
5451 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5452 GetLastError: GetLastError::<Identity, OFFSET>,
5453 Config: Config::<Identity, OFFSET>,
5454 UpdateState: UpdateState::<Identity, OFFSET>,
5455 AddKeys: AddKeys::<Identity, OFFSET>,
5456 RemoveKeys: RemoveKeys::<Identity, OFFSET>,
5457 }
5458 }
5459 pub fn matches(iid: &windows_core::GUID) -> bool {
5460 iid == &<IExchangeChangeAdvisor as windows_core::Interface>::IID
5461 }
5462}
5463impl windows_core::RuntimeName for IExchangeChangeAdvisor {}
5464windows_core::imp::define_interface!(
5465 IExchangeExportChanges,
5466 IExchangeExportChanges_Vtbl,
5467 0xa3ea9cc0_d1b2_11cd_80fc_00aa004bba0b
5468);
5469windows_core::imp::interface_hierarchy!(IExchangeExportChanges, windows_core::IUnknown);
5470impl IExchangeExportChanges {
5471 pub unsafe fn GetLastError(
5472 &self,
5473 hresult: windows_core::HRESULT,
5474 ulflags: u32,
5475 lppmapierror: *mut *mut MAPIERROR,
5476 ) -> windows_core::Result<()> {
5477 unsafe {
5478 (windows_core::Interface::vtable(self).GetLastError)(
5479 windows_core::Interface::as_raw(self),
5480 hresult,
5481 ulflags,
5482 lppmapierror as _,
5483 )
5484 .ok()
5485 }
5486 }
5487 pub unsafe fn Config<P0, P2>(
5488 &self,
5489 lpstream: P0,
5490 ulflags: u32,
5491 lpunk: P2,
5492 lprestriction: *mut SRestriction,
5493 lpincludeprops: *mut SPropTagArray,
5494 lpexcludeprops: *mut SPropTagArray,
5495 ulbuffersize: u32,
5496 ) -> windows_core::Result<()>
5497 where
5498 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5499 P2: windows_core::Param<windows_core::IUnknown>,
5500 {
5501 unsafe {
5502 (windows_core::Interface::vtable(self).Config)(
5503 windows_core::Interface::as_raw(self),
5504 lpstream.param().abi(),
5505 ulflags,
5506 lpunk.param().abi(),
5507 lprestriction as _,
5508 lpincludeprops as _,
5509 lpexcludeprops as _,
5510 ulbuffersize,
5511 )
5512 .ok()
5513 }
5514 }
5515 pub unsafe fn Synchronize(
5516 &self,
5517 lpulsteps: *mut u32,
5518 lpulprogress: *mut u32,
5519 ) -> windows_core::Result<()> {
5520 unsafe {
5521 (windows_core::Interface::vtable(self).Synchronize)(
5522 windows_core::Interface::as_raw(self),
5523 lpulsteps as _,
5524 lpulprogress as _,
5525 )
5526 .ok()
5527 }
5528 }
5529 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
5530 where
5531 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5532 {
5533 unsafe {
5534 (windows_core::Interface::vtable(self).UpdateState)(
5535 windows_core::Interface::as_raw(self),
5536 lpstream.param().abi(),
5537 )
5538 .ok()
5539 }
5540 }
5541}
5542#[repr(C)]
5543pub struct IExchangeExportChanges_Vtbl {
5544 pub base__: windows_core::IUnknown_Vtbl,
5545 pub GetLastError: unsafe extern "system" fn(
5546 *mut core::ffi::c_void,
5547 windows_core::HRESULT,
5548 u32,
5549 *mut *mut MAPIERROR,
5550 ) -> windows_core::HRESULT,
5551 pub Config: unsafe extern "system" fn(
5552 *mut core::ffi::c_void,
5553 *mut core::ffi::c_void,
5554 u32,
5555 *mut core::ffi::c_void,
5556 *mut SRestriction,
5557 *mut SPropTagArray,
5558 *mut SPropTagArray,
5559 u32,
5560 ) -> windows_core::HRESULT,
5561 pub Synchronize: unsafe extern "system" fn(
5562 *mut core::ffi::c_void,
5563 *mut u32,
5564 *mut u32,
5565 ) -> windows_core::HRESULT,
5566 pub UpdateState: unsafe extern "system" fn(
5567 *mut core::ffi::c_void,
5568 *mut core::ffi::c_void,
5569 ) -> windows_core::HRESULT,
5570}
5571pub trait IExchangeExportChanges_Impl: windows_core::IUnknownImpl {
5572 fn GetLastError(
5573 &self,
5574 hresult: windows_core::HRESULT,
5575 ulflags: u32,
5576 lppmapierror: *mut *mut MAPIERROR,
5577 ) -> windows_core::Result<()>;
5578 fn Config(
5579 &self,
5580 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
5581 ulflags: u32,
5582 lpunk: windows_core::Ref<'_, windows_core::IUnknown>,
5583 lprestriction: *mut SRestriction,
5584 lpincludeprops: *mut SPropTagArray,
5585 lpexcludeprops: *mut SPropTagArray,
5586 ulbuffersize: u32,
5587 ) -> windows_core::Result<()>;
5588 fn Synchronize(&self, lpulsteps: *mut u32, lpulprogress: *mut u32) -> windows_core::Result<()>;
5589 fn UpdateState(
5590 &self,
5591 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
5592 ) -> windows_core::Result<()>;
5593}
5594impl IExchangeExportChanges_Vtbl {
5595 pub const fn new<Identity: IExchangeExportChanges_Impl, const OFFSET: isize>() -> Self {
5596 unsafe extern "system" fn GetLastError<
5597 Identity: IExchangeExportChanges_Impl,
5598 const OFFSET: isize,
5599 >(
5600 this: *mut core::ffi::c_void,
5601 hresult: windows_core::HRESULT,
5602 ulflags: u32,
5603 lppmapierror: *mut *mut MAPIERROR,
5604 ) -> windows_core::HRESULT {
5605 unsafe {
5606 let this: &Identity =
5607 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5608 IExchangeExportChanges_Impl::GetLastError(
5609 this,
5610 core::mem::transmute_copy(&hresult),
5611 core::mem::transmute_copy(&ulflags),
5612 core::mem::transmute_copy(&lppmapierror),
5613 )
5614 .into()
5615 }
5616 }
5617 unsafe extern "system" fn Config<
5618 Identity: IExchangeExportChanges_Impl,
5619 const OFFSET: isize,
5620 >(
5621 this: *mut core::ffi::c_void,
5622 lpstream: *mut core::ffi::c_void,
5623 ulflags: u32,
5624 lpunk: *mut core::ffi::c_void,
5625 lprestriction: *mut SRestriction,
5626 lpincludeprops: *mut SPropTagArray,
5627 lpexcludeprops: *mut SPropTagArray,
5628 ulbuffersize: u32,
5629 ) -> windows_core::HRESULT {
5630 unsafe {
5631 let this: &Identity =
5632 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5633 IExchangeExportChanges_Impl::Config(
5634 this,
5635 core::mem::transmute_copy(&lpstream),
5636 core::mem::transmute_copy(&ulflags),
5637 core::mem::transmute_copy(&lpunk),
5638 core::mem::transmute_copy(&lprestriction),
5639 core::mem::transmute_copy(&lpincludeprops),
5640 core::mem::transmute_copy(&lpexcludeprops),
5641 core::mem::transmute_copy(&ulbuffersize),
5642 )
5643 .into()
5644 }
5645 }
5646 unsafe extern "system" fn Synchronize<
5647 Identity: IExchangeExportChanges_Impl,
5648 const OFFSET: isize,
5649 >(
5650 this: *mut core::ffi::c_void,
5651 lpulsteps: *mut u32,
5652 lpulprogress: *mut u32,
5653 ) -> windows_core::HRESULT {
5654 unsafe {
5655 let this: &Identity =
5656 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5657 IExchangeExportChanges_Impl::Synchronize(
5658 this,
5659 core::mem::transmute_copy(&lpulsteps),
5660 core::mem::transmute_copy(&lpulprogress),
5661 )
5662 .into()
5663 }
5664 }
5665 unsafe extern "system" fn UpdateState<
5666 Identity: IExchangeExportChanges_Impl,
5667 const OFFSET: isize,
5668 >(
5669 this: *mut core::ffi::c_void,
5670 lpstream: *mut core::ffi::c_void,
5671 ) -> windows_core::HRESULT {
5672 unsafe {
5673 let this: &Identity =
5674 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5675 IExchangeExportChanges_Impl::UpdateState(this, core::mem::transmute_copy(&lpstream))
5676 .into()
5677 }
5678 }
5679 Self {
5680 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5681 GetLastError: GetLastError::<Identity, OFFSET>,
5682 Config: Config::<Identity, OFFSET>,
5683 Synchronize: Synchronize::<Identity, OFFSET>,
5684 UpdateState: UpdateState::<Identity, OFFSET>,
5685 }
5686 }
5687 pub fn matches(iid: &windows_core::GUID) -> bool {
5688 iid == &<IExchangeExportChanges as windows_core::Interface>::IID
5689 }
5690}
5691impl windows_core::RuntimeName for IExchangeExportChanges {}
5692windows_core::imp::define_interface!(
5693 IExchangeExportChanges2,
5694 IExchangeExportChanges2_Vtbl,
5695 0x387cebe0_f53f_11cf_a48f_00c04fd65595
5696);
5697impl core::ops::Deref for IExchangeExportChanges2 {
5698 type Target = IExchangeExportChanges;
5699 fn deref(&self) -> &Self::Target {
5700 unsafe { core::mem::transmute(self) }
5701 }
5702}
5703windows_core::imp::interface_hierarchy!(
5704 IExchangeExportChanges2,
5705 windows_core::IUnknown,
5706 IExchangeExportChanges
5707);
5708impl IExchangeExportChanges2 {
5709 pub unsafe fn ConfigForConversionStream<P0, P2>(
5710 &self,
5711 lpstream: P0,
5712 ulflags: u32,
5713 lpunk: P2,
5714 lprestriction: *mut SRestriction,
5715 cvaluesconversion: u32,
5716 lpproparrayconversion: *mut SPropValue,
5717 ulbuffersize: u32,
5718 ) -> windows_core::Result<()>
5719 where
5720 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5721 P2: windows_core::Param<windows_core::IUnknown>,
5722 {
5723 unsafe {
5724 (windows_core::Interface::vtable(self).ConfigForConversionStream)(
5725 windows_core::Interface::as_raw(self),
5726 lpstream.param().abi(),
5727 ulflags,
5728 lpunk.param().abi(),
5729 lprestriction as _,
5730 cvaluesconversion,
5731 lpproparrayconversion as _,
5732 ulbuffersize,
5733 )
5734 .ok()
5735 }
5736 }
5737}
5738#[repr(C)]
5739pub struct IExchangeExportChanges2_Vtbl {
5740 pub base__: IExchangeExportChanges_Vtbl,
5741 pub ConfigForConversionStream: unsafe extern "system" fn(
5742 *mut core::ffi::c_void,
5743 *mut core::ffi::c_void,
5744 u32,
5745 *mut core::ffi::c_void,
5746 *mut SRestriction,
5747 u32,
5748 *mut SPropValue,
5749 u32,
5750 ) -> windows_core::HRESULT,
5751}
5752pub trait IExchangeExportChanges2_Impl: IExchangeExportChanges_Impl {
5753 fn ConfigForConversionStream(
5754 &self,
5755 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
5756 ulflags: u32,
5757 lpunk: windows_core::Ref<'_, windows_core::IUnknown>,
5758 lprestriction: *mut SRestriction,
5759 cvaluesconversion: u32,
5760 lpproparrayconversion: *mut SPropValue,
5761 ulbuffersize: u32,
5762 ) -> windows_core::Result<()>;
5763}
5764impl IExchangeExportChanges2_Vtbl {
5765 pub const fn new<Identity: IExchangeExportChanges2_Impl, const OFFSET: isize>() -> Self {
5766 unsafe extern "system" fn ConfigForConversionStream<
5767 Identity: IExchangeExportChanges2_Impl,
5768 const OFFSET: isize,
5769 >(
5770 this: *mut core::ffi::c_void,
5771 lpstream: *mut core::ffi::c_void,
5772 ulflags: u32,
5773 lpunk: *mut core::ffi::c_void,
5774 lprestriction: *mut SRestriction,
5775 cvaluesconversion: u32,
5776 lpproparrayconversion: *mut SPropValue,
5777 ulbuffersize: u32,
5778 ) -> windows_core::HRESULT {
5779 unsafe {
5780 let this: &Identity =
5781 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5782 IExchangeExportChanges2_Impl::ConfigForConversionStream(
5783 this,
5784 core::mem::transmute_copy(&lpstream),
5785 core::mem::transmute_copy(&ulflags),
5786 core::mem::transmute_copy(&lpunk),
5787 core::mem::transmute_copy(&lprestriction),
5788 core::mem::transmute_copy(&cvaluesconversion),
5789 core::mem::transmute_copy(&lpproparrayconversion),
5790 core::mem::transmute_copy(&ulbuffersize),
5791 )
5792 .into()
5793 }
5794 }
5795 Self {
5796 base__: IExchangeExportChanges_Vtbl::new::<Identity, OFFSET>(),
5797 ConfigForConversionStream: ConfigForConversionStream::<Identity, OFFSET>,
5798 }
5799 }
5800 pub fn matches(iid: &windows_core::GUID) -> bool {
5801 iid == &<IExchangeExportChanges2 as windows_core::Interface>::IID
5802 || iid == &<IExchangeExportChanges as windows_core::Interface>::IID
5803 }
5804}
5805impl windows_core::RuntimeName for IExchangeExportChanges2 {}
5806windows_core::imp::define_interface!(
5807 IExchangeExportChanges3,
5808 IExchangeExportChanges3_Vtbl,
5809 0x702e7f86_50a6_11d1_abd6_00a0c905660a
5810);
5811impl core::ops::Deref for IExchangeExportChanges3 {
5812 type Target = IExchangeExportChanges2;
5813 fn deref(&self) -> &Self::Target {
5814 unsafe { core::mem::transmute(self) }
5815 }
5816}
5817windows_core::imp::interface_hierarchy!(
5818 IExchangeExportChanges3,
5819 windows_core::IUnknown,
5820 IExchangeExportChanges,
5821 IExchangeExportChanges2
5822);
5823impl IExchangeExportChanges3 {
5824 pub unsafe fn ConfigForSelectiveSync<P0, P2>(
5825 &self,
5826 lpstream: P0,
5827 ulflags: u32,
5828 lpunk: P2,
5829 lpmsglist: *mut SBinaryArray,
5830 lprestriction: *mut SRestriction,
5831 lpincludeprops: *mut SPropTagArray,
5832 lpexcludeprops: *mut SPropTagArray,
5833 ulbuffersize: u32,
5834 ) -> windows_core::Result<()>
5835 where
5836 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5837 P2: windows_core::Param<windows_core::IUnknown>,
5838 {
5839 unsafe {
5840 (windows_core::Interface::vtable(self).ConfigForSelectiveSync)(
5841 windows_core::Interface::as_raw(self),
5842 lpstream.param().abi(),
5843 ulflags,
5844 lpunk.param().abi(),
5845 lpmsglist as _,
5846 lprestriction as _,
5847 lpincludeprops as _,
5848 lpexcludeprops as _,
5849 ulbuffersize,
5850 )
5851 .ok()
5852 }
5853 }
5854}
5855#[repr(C)]
5856pub struct IExchangeExportChanges3_Vtbl {
5857 pub base__: IExchangeExportChanges2_Vtbl,
5858 pub ConfigForSelectiveSync: unsafe extern "system" fn(
5859 *mut core::ffi::c_void,
5860 *mut core::ffi::c_void,
5861 u32,
5862 *mut core::ffi::c_void,
5863 *mut SBinaryArray,
5864 *mut SRestriction,
5865 *mut SPropTagArray,
5866 *mut SPropTagArray,
5867 u32,
5868 ) -> windows_core::HRESULT,
5869}
5870pub trait IExchangeExportChanges3_Impl: IExchangeExportChanges2_Impl {
5871 fn ConfigForSelectiveSync(
5872 &self,
5873 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
5874 ulflags: u32,
5875 lpunk: windows_core::Ref<'_, windows_core::IUnknown>,
5876 lpmsglist: *mut SBinaryArray,
5877 lprestriction: *mut SRestriction,
5878 lpincludeprops: *mut SPropTagArray,
5879 lpexcludeprops: *mut SPropTagArray,
5880 ulbuffersize: u32,
5881 ) -> windows_core::Result<()>;
5882}
5883impl IExchangeExportChanges3_Vtbl {
5884 pub const fn new<Identity: IExchangeExportChanges3_Impl, const OFFSET: isize>() -> Self {
5885 unsafe extern "system" fn ConfigForSelectiveSync<
5886 Identity: IExchangeExportChanges3_Impl,
5887 const OFFSET: isize,
5888 >(
5889 this: *mut core::ffi::c_void,
5890 lpstream: *mut core::ffi::c_void,
5891 ulflags: u32,
5892 lpunk: *mut core::ffi::c_void,
5893 lpmsglist: *mut SBinaryArray,
5894 lprestriction: *mut SRestriction,
5895 lpincludeprops: *mut SPropTagArray,
5896 lpexcludeprops: *mut SPropTagArray,
5897 ulbuffersize: u32,
5898 ) -> windows_core::HRESULT {
5899 unsafe {
5900 let this: &Identity =
5901 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5902 IExchangeExportChanges3_Impl::ConfigForSelectiveSync(
5903 this,
5904 core::mem::transmute_copy(&lpstream),
5905 core::mem::transmute_copy(&ulflags),
5906 core::mem::transmute_copy(&lpunk),
5907 core::mem::transmute_copy(&lpmsglist),
5908 core::mem::transmute_copy(&lprestriction),
5909 core::mem::transmute_copy(&lpincludeprops),
5910 core::mem::transmute_copy(&lpexcludeprops),
5911 core::mem::transmute_copy(&ulbuffersize),
5912 )
5913 .into()
5914 }
5915 }
5916 Self {
5917 base__: IExchangeExportChanges2_Vtbl::new::<Identity, OFFSET>(),
5918 ConfigForSelectiveSync: ConfigForSelectiveSync::<Identity, OFFSET>,
5919 }
5920 }
5921 pub fn matches(iid: &windows_core::GUID) -> bool {
5922 iid == &<IExchangeExportChanges3 as windows_core::Interface>::IID
5923 || iid == &<IExchangeExportChanges as windows_core::Interface>::IID
5924 || iid == &<IExchangeExportChanges2 as windows_core::Interface>::IID
5925 }
5926}
5927impl windows_core::RuntimeName for IExchangeExportChanges3 {}
5928windows_core::imp::define_interface!(
5929 IExchangeFastTransfer,
5930 IExchangeFastTransfer_Vtbl,
5931 0xff7db070_a88a_11cd_9bc8_00aa002fc45a
5932);
5933windows_core::imp::interface_hierarchy!(IExchangeFastTransfer, windows_core::IUnknown);
5934impl IExchangeFastTransfer {
5935 pub unsafe fn Config(&self, ulflags: u32, ultransfermethod: u32) -> windows_core::Result<()> {
5936 unsafe {
5937 (windows_core::Interface::vtable(self).Config)(
5938 windows_core::Interface::as_raw(self),
5939 ulflags,
5940 ultransfermethod,
5941 )
5942 .ok()
5943 }
5944 }
5945 pub unsafe fn TransferBuffer(
5946 &self,
5947 cb: u32,
5948 lpb: *mut u8,
5949 lpcbprocessed: *mut u32,
5950 ) -> windows_core::Result<()> {
5951 unsafe {
5952 (windows_core::Interface::vtable(self).TransferBuffer)(
5953 windows_core::Interface::as_raw(self),
5954 cb,
5955 lpb as _,
5956 lpcbprocessed as _,
5957 )
5958 .ok()
5959 }
5960 }
5961 pub unsafe fn IsInterfaceOk(
5962 &self,
5963 ultransfermethod: u32,
5964 refiid: *const windows_core::GUID,
5965 lpptaglist: *mut SPropTagArray,
5966 ulflags: u32,
5967 ) -> windows_core::BOOL {
5968 unsafe {
5969 (windows_core::Interface::vtable(self).IsInterfaceOk)(
5970 windows_core::Interface::as_raw(self),
5971 ultransfermethod,
5972 refiid,
5973 lpptaglist as _,
5974 ulflags,
5975 )
5976 }
5977 }
5978}
5979#[repr(C)]
5980pub struct IExchangeFastTransfer_Vtbl {
5981 pub base__: windows_core::IUnknown_Vtbl,
5982 pub Config:
5983 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
5984 pub TransferBuffer: unsafe extern "system" fn(
5985 *mut core::ffi::c_void,
5986 u32,
5987 *mut u8,
5988 *mut u32,
5989 ) -> windows_core::HRESULT,
5990 pub IsInterfaceOk: unsafe extern "system" fn(
5991 *mut core::ffi::c_void,
5992 u32,
5993 *const windows_core::GUID,
5994 *mut SPropTagArray,
5995 u32,
5996 ) -> windows_core::BOOL,
5997}
5998pub trait IExchangeFastTransfer_Impl: windows_core::IUnknownImpl {
5999 fn Config(&self, ulflags: u32, ultransfermethod: u32) -> windows_core::Result<()>;
6000 fn TransferBuffer(
6001 &self,
6002 cb: u32,
6003 lpb: *mut u8,
6004 lpcbprocessed: *mut u32,
6005 ) -> windows_core::Result<()>;
6006 fn IsInterfaceOk(
6007 &self,
6008 ultransfermethod: u32,
6009 refiid: *const windows_core::GUID,
6010 lpptaglist: *mut SPropTagArray,
6011 ulflags: u32,
6012 ) -> windows_core::BOOL;
6013}
6014impl IExchangeFastTransfer_Vtbl {
6015 pub const fn new<Identity: IExchangeFastTransfer_Impl, const OFFSET: isize>() -> Self {
6016 unsafe extern "system" fn Config<
6017 Identity: IExchangeFastTransfer_Impl,
6018 const OFFSET: isize,
6019 >(
6020 this: *mut core::ffi::c_void,
6021 ulflags: u32,
6022 ultransfermethod: u32,
6023 ) -> windows_core::HRESULT {
6024 unsafe {
6025 let this: &Identity =
6026 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6027 IExchangeFastTransfer_Impl::Config(
6028 this,
6029 core::mem::transmute_copy(&ulflags),
6030 core::mem::transmute_copy(&ultransfermethod),
6031 )
6032 .into()
6033 }
6034 }
6035 unsafe extern "system" fn TransferBuffer<
6036 Identity: IExchangeFastTransfer_Impl,
6037 const OFFSET: isize,
6038 >(
6039 this: *mut core::ffi::c_void,
6040 cb: u32,
6041 lpb: *mut u8,
6042 lpcbprocessed: *mut u32,
6043 ) -> windows_core::HRESULT {
6044 unsafe {
6045 let this: &Identity =
6046 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6047 IExchangeFastTransfer_Impl::TransferBuffer(
6048 this,
6049 core::mem::transmute_copy(&cb),
6050 core::mem::transmute_copy(&lpb),
6051 core::mem::transmute_copy(&lpcbprocessed),
6052 )
6053 .into()
6054 }
6055 }
6056 unsafe extern "system" fn IsInterfaceOk<
6057 Identity: IExchangeFastTransfer_Impl,
6058 const OFFSET: isize,
6059 >(
6060 this: *mut core::ffi::c_void,
6061 ultransfermethod: u32,
6062 refiid: *const windows_core::GUID,
6063 lpptaglist: *mut SPropTagArray,
6064 ulflags: u32,
6065 ) -> windows_core::BOOL {
6066 unsafe {
6067 let this: &Identity =
6068 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6069 IExchangeFastTransfer_Impl::IsInterfaceOk(
6070 this,
6071 core::mem::transmute_copy(&ultransfermethod),
6072 core::mem::transmute_copy(&refiid),
6073 core::mem::transmute_copy(&lpptaglist),
6074 core::mem::transmute_copy(&ulflags),
6075 )
6076 }
6077 }
6078 Self {
6079 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6080 Config: Config::<Identity, OFFSET>,
6081 TransferBuffer: TransferBuffer::<Identity, OFFSET>,
6082 IsInterfaceOk: IsInterfaceOk::<Identity, OFFSET>,
6083 }
6084 }
6085 pub fn matches(iid: &windows_core::GUID) -> bool {
6086 iid == &<IExchangeFastTransfer as windows_core::Interface>::IID
6087 }
6088}
6089impl windows_core::RuntimeName for IExchangeFastTransfer {}
6090windows_core::imp::define_interface!(
6091 IExchangeFavorites,
6092 IExchangeFavorites_Vtbl,
6093 0xcf4f3bc0_ec66_11ce_b31c_00aa00574cc6
6094);
6095windows_core::imp::interface_hierarchy!(IExchangeFavorites, windows_core::IUnknown);
6096impl IExchangeFavorites {
6097 pub unsafe fn GetLastError(
6098 &self,
6099 hresult: windows_core::HRESULT,
6100 ulflags: u32,
6101 lppmapierror: *mut *mut MAPIERROR,
6102 ) -> windows_core::Result<()> {
6103 unsafe {
6104 (windows_core::Interface::vtable(self).GetLastError)(
6105 windows_core::Interface::as_raw(self),
6106 hresult,
6107 ulflags,
6108 lppmapierror as _,
6109 )
6110 .ok()
6111 }
6112 }
6113 pub unsafe fn AddFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
6114 unsafe {
6115 (windows_core::Interface::vtable(self).AddFavorites)(
6116 windows_core::Interface::as_raw(self),
6117 lpentrylist as _,
6118 )
6119 .ok()
6120 }
6121 }
6122 pub unsafe fn DelFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
6123 unsafe {
6124 (windows_core::Interface::vtable(self).DelFavorites)(
6125 windows_core::Interface::as_raw(self),
6126 lpentrylist as _,
6127 )
6128 .ok()
6129 }
6130 }
6131}
6132#[repr(C)]
6133pub struct IExchangeFavorites_Vtbl {
6134 pub base__: windows_core::IUnknown_Vtbl,
6135 pub GetLastError: unsafe extern "system" fn(
6136 *mut core::ffi::c_void,
6137 windows_core::HRESULT,
6138 u32,
6139 *mut *mut MAPIERROR,
6140 ) -> windows_core::HRESULT,
6141 pub AddFavorites: unsafe extern "system" fn(
6142 *mut core::ffi::c_void,
6143 *mut SBinaryArray,
6144 ) -> windows_core::HRESULT,
6145 pub DelFavorites: unsafe extern "system" fn(
6146 *mut core::ffi::c_void,
6147 *mut SBinaryArray,
6148 ) -> windows_core::HRESULT,
6149}
6150pub trait IExchangeFavorites_Impl: windows_core::IUnknownImpl {
6151 fn GetLastError(
6152 &self,
6153 hresult: windows_core::HRESULT,
6154 ulflags: u32,
6155 lppmapierror: *mut *mut MAPIERROR,
6156 ) -> windows_core::Result<()>;
6157 fn AddFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
6158 fn DelFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
6159}
6160impl IExchangeFavorites_Vtbl {
6161 pub const fn new<Identity: IExchangeFavorites_Impl, const OFFSET: isize>() -> Self {
6162 unsafe extern "system" fn GetLastError<
6163 Identity: IExchangeFavorites_Impl,
6164 const OFFSET: isize,
6165 >(
6166 this: *mut core::ffi::c_void,
6167 hresult: windows_core::HRESULT,
6168 ulflags: u32,
6169 lppmapierror: *mut *mut MAPIERROR,
6170 ) -> windows_core::HRESULT {
6171 unsafe {
6172 let this: &Identity =
6173 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6174 IExchangeFavorites_Impl::GetLastError(
6175 this,
6176 core::mem::transmute_copy(&hresult),
6177 core::mem::transmute_copy(&ulflags),
6178 core::mem::transmute_copy(&lppmapierror),
6179 )
6180 .into()
6181 }
6182 }
6183 unsafe extern "system" fn AddFavorites<
6184 Identity: IExchangeFavorites_Impl,
6185 const OFFSET: isize,
6186 >(
6187 this: *mut core::ffi::c_void,
6188 lpentrylist: *mut SBinaryArray,
6189 ) -> windows_core::HRESULT {
6190 unsafe {
6191 let this: &Identity =
6192 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6193 IExchangeFavorites_Impl::AddFavorites(this, core::mem::transmute_copy(&lpentrylist))
6194 .into()
6195 }
6196 }
6197 unsafe extern "system" fn DelFavorites<
6198 Identity: IExchangeFavorites_Impl,
6199 const OFFSET: isize,
6200 >(
6201 this: *mut core::ffi::c_void,
6202 lpentrylist: *mut SBinaryArray,
6203 ) -> windows_core::HRESULT {
6204 unsafe {
6205 let this: &Identity =
6206 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6207 IExchangeFavorites_Impl::DelFavorites(this, core::mem::transmute_copy(&lpentrylist))
6208 .into()
6209 }
6210 }
6211 Self {
6212 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6213 GetLastError: GetLastError::<Identity, OFFSET>,
6214 AddFavorites: AddFavorites::<Identity, OFFSET>,
6215 DelFavorites: DelFavorites::<Identity, OFFSET>,
6216 }
6217 }
6218 pub fn matches(iid: &windows_core::GUID) -> bool {
6219 iid == &<IExchangeFavorites as windows_core::Interface>::IID
6220 }
6221}
6222impl windows_core::RuntimeName for IExchangeFavorites {}
6223windows_core::imp::define_interface!(
6224 IExchangeImportContentsChanges,
6225 IExchangeImportContentsChanges_Vtbl,
6226 0xf75abfa0_d0e0_11cd_80fc_00aa004bba0b
6227);
6228windows_core::imp::interface_hierarchy!(IExchangeImportContentsChanges, windows_core::IUnknown);
6229impl IExchangeImportContentsChanges {
6230 pub unsafe fn GetLastError(
6231 &self,
6232 hresult: windows_core::HRESULT,
6233 ulflags: u32,
6234 lppmapierror: *mut *mut MAPIERROR,
6235 ) -> windows_core::Result<()> {
6236 unsafe {
6237 (windows_core::Interface::vtable(self).GetLastError)(
6238 windows_core::Interface::as_raw(self),
6239 hresult,
6240 ulflags,
6241 lppmapierror as _,
6242 )
6243 .ok()
6244 }
6245 }
6246 pub unsafe fn Config<P0>(&self, lpstream: P0, ulflags: u32) -> windows_core::Result<()>
6247 where
6248 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6249 {
6250 unsafe {
6251 (windows_core::Interface::vtable(self).Config)(
6252 windows_core::Interface::as_raw(self),
6253 lpstream.param().abi(),
6254 ulflags,
6255 )
6256 .ok()
6257 }
6258 }
6259 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
6260 where
6261 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6262 {
6263 unsafe {
6264 (windows_core::Interface::vtable(self).UpdateState)(
6265 windows_core::Interface::as_raw(self),
6266 lpstream.param().abi(),
6267 )
6268 .ok()
6269 }
6270 }
6271 pub unsafe fn ImportMessageChange(
6272 &self,
6273 cpvalchanges: u32,
6274 ppvalchanges: *mut SPropValue,
6275 ulflags: u32,
6276 lppmessage: *mut Option<IMessage>,
6277 ) -> windows_core::Result<()> {
6278 unsafe {
6279 (windows_core::Interface::vtable(self).ImportMessageChange)(
6280 windows_core::Interface::as_raw(self),
6281 cpvalchanges,
6282 ppvalchanges as _,
6283 ulflags,
6284 core::mem::transmute(lppmessage),
6285 )
6286 .ok()
6287 }
6288 }
6289 pub unsafe fn ImportMessageDeletion(
6290 &self,
6291 ulflags: u32,
6292 lpsrcentrylist: *mut SBinaryArray,
6293 ) -> windows_core::Result<()> {
6294 unsafe {
6295 (windows_core::Interface::vtable(self).ImportMessageDeletion)(
6296 windows_core::Interface::as_raw(self),
6297 ulflags,
6298 lpsrcentrylist as _,
6299 )
6300 .ok()
6301 }
6302 }
6303 pub unsafe fn ImportPerUserReadStateChange(
6304 &self,
6305 celements: u32,
6306 lpreadstate: *mut READSTATE,
6307 ) -> windows_core::Result<()> {
6308 unsafe {
6309 (windows_core::Interface::vtable(self).ImportPerUserReadStateChange)(
6310 windows_core::Interface::as_raw(self),
6311 celements,
6312 lpreadstate as _,
6313 )
6314 .ok()
6315 }
6316 }
6317 pub unsafe fn ImportMessageMove(
6318 &self,
6319 cbsourcekeysrcfolder: u32,
6320 pbsourcekeysrcfolder: *mut u8,
6321 cbsourcekeysrcmessage: u32,
6322 pbsourcekeysrcmessage: *mut u8,
6323 cbpclmessage: u32,
6324 pbpclmessage: *mut u8,
6325 cbsourcekeydestmessage: u32,
6326 pbsourcekeydestmessage: *mut u8,
6327 cbchangenumdestmessage: u32,
6328 pbchangenumdestmessage: *mut u8,
6329 ) -> windows_core::Result<()> {
6330 unsafe {
6331 (windows_core::Interface::vtable(self).ImportMessageMove)(
6332 windows_core::Interface::as_raw(self),
6333 cbsourcekeysrcfolder,
6334 pbsourcekeysrcfolder as _,
6335 cbsourcekeysrcmessage,
6336 pbsourcekeysrcmessage as _,
6337 cbpclmessage,
6338 pbpclmessage as _,
6339 cbsourcekeydestmessage,
6340 pbsourcekeydestmessage as _,
6341 cbchangenumdestmessage,
6342 pbchangenumdestmessage as _,
6343 )
6344 .ok()
6345 }
6346 }
6347}
6348#[repr(C)]
6349pub struct IExchangeImportContentsChanges_Vtbl {
6350 pub base__: windows_core::IUnknown_Vtbl,
6351 pub GetLastError: unsafe extern "system" fn(
6352 *mut core::ffi::c_void,
6353 windows_core::HRESULT,
6354 u32,
6355 *mut *mut MAPIERROR,
6356 ) -> windows_core::HRESULT,
6357 pub Config: unsafe extern "system" fn(
6358 *mut core::ffi::c_void,
6359 *mut core::ffi::c_void,
6360 u32,
6361 ) -> windows_core::HRESULT,
6362 pub UpdateState: unsafe extern "system" fn(
6363 *mut core::ffi::c_void,
6364 *mut core::ffi::c_void,
6365 ) -> windows_core::HRESULT,
6366 pub ImportMessageChange: unsafe extern "system" fn(
6367 *mut core::ffi::c_void,
6368 u32,
6369 *mut SPropValue,
6370 u32,
6371 *mut *mut core::ffi::c_void,
6372 ) -> windows_core::HRESULT,
6373 pub ImportMessageDeletion: unsafe extern "system" fn(
6374 *mut core::ffi::c_void,
6375 u32,
6376 *mut SBinaryArray,
6377 ) -> windows_core::HRESULT,
6378 pub ImportPerUserReadStateChange: unsafe extern "system" fn(
6379 *mut core::ffi::c_void,
6380 u32,
6381 *mut READSTATE,
6382 ) -> windows_core::HRESULT,
6383 pub ImportMessageMove: unsafe extern "system" fn(
6384 *mut core::ffi::c_void,
6385 u32,
6386 *mut u8,
6387 u32,
6388 *mut u8,
6389 u32,
6390 *mut u8,
6391 u32,
6392 *mut u8,
6393 u32,
6394 *mut u8,
6395 ) -> windows_core::HRESULT,
6396}
6397pub trait IExchangeImportContentsChanges_Impl: windows_core::IUnknownImpl {
6398 fn GetLastError(
6399 &self,
6400 hresult: windows_core::HRESULT,
6401 ulflags: u32,
6402 lppmapierror: *mut *mut MAPIERROR,
6403 ) -> windows_core::Result<()>;
6404 fn Config(
6405 &self,
6406 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
6407 ulflags: u32,
6408 ) -> windows_core::Result<()>;
6409 fn UpdateState(
6410 &self,
6411 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
6412 ) -> windows_core::Result<()>;
6413 fn ImportMessageChange(
6414 &self,
6415 cpvalchanges: u32,
6416 ppvalchanges: *mut SPropValue,
6417 ulflags: u32,
6418 lppmessage: windows_core::OutRef<'_, IMessage>,
6419 ) -> windows_core::Result<()>;
6420 fn ImportMessageDeletion(
6421 &self,
6422 ulflags: u32,
6423 lpsrcentrylist: *mut SBinaryArray,
6424 ) -> windows_core::Result<()>;
6425 fn ImportPerUserReadStateChange(
6426 &self,
6427 celements: u32,
6428 lpreadstate: *mut READSTATE,
6429 ) -> windows_core::Result<()>;
6430 fn ImportMessageMove(
6431 &self,
6432 cbsourcekeysrcfolder: u32,
6433 pbsourcekeysrcfolder: *mut u8,
6434 cbsourcekeysrcmessage: u32,
6435 pbsourcekeysrcmessage: *mut u8,
6436 cbpclmessage: u32,
6437 pbpclmessage: *mut u8,
6438 cbsourcekeydestmessage: u32,
6439 pbsourcekeydestmessage: *mut u8,
6440 cbchangenumdestmessage: u32,
6441 pbchangenumdestmessage: *mut u8,
6442 ) -> windows_core::Result<()>;
6443}
6444impl IExchangeImportContentsChanges_Vtbl {
6445 pub const fn new<Identity: IExchangeImportContentsChanges_Impl, const OFFSET: isize>() -> Self {
6446 unsafe extern "system" fn GetLastError<
6447 Identity: IExchangeImportContentsChanges_Impl,
6448 const OFFSET: isize,
6449 >(
6450 this: *mut core::ffi::c_void,
6451 hresult: windows_core::HRESULT,
6452 ulflags: u32,
6453 lppmapierror: *mut *mut MAPIERROR,
6454 ) -> windows_core::HRESULT {
6455 unsafe {
6456 let this: &Identity =
6457 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6458 IExchangeImportContentsChanges_Impl::GetLastError(
6459 this,
6460 core::mem::transmute_copy(&hresult),
6461 core::mem::transmute_copy(&ulflags),
6462 core::mem::transmute_copy(&lppmapierror),
6463 )
6464 .into()
6465 }
6466 }
6467 unsafe extern "system" fn Config<
6468 Identity: IExchangeImportContentsChanges_Impl,
6469 const OFFSET: isize,
6470 >(
6471 this: *mut core::ffi::c_void,
6472 lpstream: *mut core::ffi::c_void,
6473 ulflags: u32,
6474 ) -> windows_core::HRESULT {
6475 unsafe {
6476 let this: &Identity =
6477 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6478 IExchangeImportContentsChanges_Impl::Config(
6479 this,
6480 core::mem::transmute_copy(&lpstream),
6481 core::mem::transmute_copy(&ulflags),
6482 )
6483 .into()
6484 }
6485 }
6486 unsafe extern "system" fn UpdateState<
6487 Identity: IExchangeImportContentsChanges_Impl,
6488 const OFFSET: isize,
6489 >(
6490 this: *mut core::ffi::c_void,
6491 lpstream: *mut core::ffi::c_void,
6492 ) -> windows_core::HRESULT {
6493 unsafe {
6494 let this: &Identity =
6495 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6496 IExchangeImportContentsChanges_Impl::UpdateState(
6497 this,
6498 core::mem::transmute_copy(&lpstream),
6499 )
6500 .into()
6501 }
6502 }
6503 unsafe extern "system" fn ImportMessageChange<
6504 Identity: IExchangeImportContentsChanges_Impl,
6505 const OFFSET: isize,
6506 >(
6507 this: *mut core::ffi::c_void,
6508 cpvalchanges: u32,
6509 ppvalchanges: *mut SPropValue,
6510 ulflags: u32,
6511 lppmessage: *mut *mut core::ffi::c_void,
6512 ) -> windows_core::HRESULT {
6513 unsafe {
6514 let this: &Identity =
6515 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6516 IExchangeImportContentsChanges_Impl::ImportMessageChange(
6517 this,
6518 core::mem::transmute_copy(&cpvalchanges),
6519 core::mem::transmute_copy(&ppvalchanges),
6520 core::mem::transmute_copy(&ulflags),
6521 core::mem::transmute_copy(&lppmessage),
6522 )
6523 .into()
6524 }
6525 }
6526 unsafe extern "system" fn ImportMessageDeletion<
6527 Identity: IExchangeImportContentsChanges_Impl,
6528 const OFFSET: isize,
6529 >(
6530 this: *mut core::ffi::c_void,
6531 ulflags: u32,
6532 lpsrcentrylist: *mut SBinaryArray,
6533 ) -> windows_core::HRESULT {
6534 unsafe {
6535 let this: &Identity =
6536 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6537 IExchangeImportContentsChanges_Impl::ImportMessageDeletion(
6538 this,
6539 core::mem::transmute_copy(&ulflags),
6540 core::mem::transmute_copy(&lpsrcentrylist),
6541 )
6542 .into()
6543 }
6544 }
6545 unsafe extern "system" fn ImportPerUserReadStateChange<
6546 Identity: IExchangeImportContentsChanges_Impl,
6547 const OFFSET: isize,
6548 >(
6549 this: *mut core::ffi::c_void,
6550 celements: u32,
6551 lpreadstate: *mut READSTATE,
6552 ) -> windows_core::HRESULT {
6553 unsafe {
6554 let this: &Identity =
6555 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6556 IExchangeImportContentsChanges_Impl::ImportPerUserReadStateChange(
6557 this,
6558 core::mem::transmute_copy(&celements),
6559 core::mem::transmute_copy(&lpreadstate),
6560 )
6561 .into()
6562 }
6563 }
6564 unsafe extern "system" fn ImportMessageMove<
6565 Identity: IExchangeImportContentsChanges_Impl,
6566 const OFFSET: isize,
6567 >(
6568 this: *mut core::ffi::c_void,
6569 cbsourcekeysrcfolder: u32,
6570 pbsourcekeysrcfolder: *mut u8,
6571 cbsourcekeysrcmessage: u32,
6572 pbsourcekeysrcmessage: *mut u8,
6573 cbpclmessage: u32,
6574 pbpclmessage: *mut u8,
6575 cbsourcekeydestmessage: u32,
6576 pbsourcekeydestmessage: *mut u8,
6577 cbchangenumdestmessage: u32,
6578 pbchangenumdestmessage: *mut u8,
6579 ) -> windows_core::HRESULT {
6580 unsafe {
6581 let this: &Identity =
6582 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6583 IExchangeImportContentsChanges_Impl::ImportMessageMove(
6584 this,
6585 core::mem::transmute_copy(&cbsourcekeysrcfolder),
6586 core::mem::transmute_copy(&pbsourcekeysrcfolder),
6587 core::mem::transmute_copy(&cbsourcekeysrcmessage),
6588 core::mem::transmute_copy(&pbsourcekeysrcmessage),
6589 core::mem::transmute_copy(&cbpclmessage),
6590 core::mem::transmute_copy(&pbpclmessage),
6591 core::mem::transmute_copy(&cbsourcekeydestmessage),
6592 core::mem::transmute_copy(&pbsourcekeydestmessage),
6593 core::mem::transmute_copy(&cbchangenumdestmessage),
6594 core::mem::transmute_copy(&pbchangenumdestmessage),
6595 )
6596 .into()
6597 }
6598 }
6599 Self {
6600 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6601 GetLastError: GetLastError::<Identity, OFFSET>,
6602 Config: Config::<Identity, OFFSET>,
6603 UpdateState: UpdateState::<Identity, OFFSET>,
6604 ImportMessageChange: ImportMessageChange::<Identity, OFFSET>,
6605 ImportMessageDeletion: ImportMessageDeletion::<Identity, OFFSET>,
6606 ImportPerUserReadStateChange: ImportPerUserReadStateChange::<Identity, OFFSET>,
6607 ImportMessageMove: ImportMessageMove::<Identity, OFFSET>,
6608 }
6609 }
6610 pub fn matches(iid: &windows_core::GUID) -> bool {
6611 iid == &<IExchangeImportContentsChanges as windows_core::Interface>::IID
6612 }
6613}
6614impl windows_core::RuntimeName for IExchangeImportContentsChanges {}
6615windows_core::imp::define_interface!(
6616 IExchangeImportContentsChanges2,
6617 IExchangeImportContentsChanges2_Vtbl,
6618 0x7dfdd720_f53f_11cf_a48f_00c04fd65595
6619);
6620impl core::ops::Deref for IExchangeImportContentsChanges2 {
6621 type Target = IExchangeImportContentsChanges;
6622 fn deref(&self) -> &Self::Target {
6623 unsafe { core::mem::transmute(self) }
6624 }
6625}
6626windows_core::imp::interface_hierarchy!(
6627 IExchangeImportContentsChanges2,
6628 windows_core::IUnknown,
6629 IExchangeImportContentsChanges
6630);
6631impl IExchangeImportContentsChanges2 {
6632 pub unsafe fn ConfigForConversionStream<P0>(
6633 &self,
6634 lpstream: P0,
6635 ulflags: u32,
6636 cvaluesconversion: u32,
6637 lpproparrayconversion: *mut SPropValue,
6638 ) -> windows_core::Result<()>
6639 where
6640 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6641 {
6642 unsafe {
6643 (windows_core::Interface::vtable(self).ConfigForConversionStream)(
6644 windows_core::Interface::as_raw(self),
6645 lpstream.param().abi(),
6646 ulflags,
6647 cvaluesconversion,
6648 lpproparrayconversion as _,
6649 )
6650 .ok()
6651 }
6652 }
6653 pub unsafe fn ImportMessageChangeAsAStream(
6654 &self,
6655 cpvalchanges: u32,
6656 ppvalchanges: *mut SPropValue,
6657 ulflags: u32,
6658 lppstream: *mut Option<windows::Win32::System::Com::IStream>,
6659 ) -> windows_core::Result<()> {
6660 unsafe {
6661 (windows_core::Interface::vtable(self).ImportMessageChangeAsAStream)(
6662 windows_core::Interface::as_raw(self),
6663 cpvalchanges,
6664 ppvalchanges as _,
6665 ulflags,
6666 core::mem::transmute(lppstream),
6667 )
6668 .ok()
6669 }
6670 }
6671}
6672#[repr(C)]
6673pub struct IExchangeImportContentsChanges2_Vtbl {
6674 pub base__: IExchangeImportContentsChanges_Vtbl,
6675 pub ConfigForConversionStream: unsafe extern "system" fn(
6676 *mut core::ffi::c_void,
6677 *mut core::ffi::c_void,
6678 u32,
6679 u32,
6680 *mut SPropValue,
6681 ) -> windows_core::HRESULT,
6682 pub ImportMessageChangeAsAStream: unsafe extern "system" fn(
6683 *mut core::ffi::c_void,
6684 u32,
6685 *mut SPropValue,
6686 u32,
6687 *mut *mut core::ffi::c_void,
6688 ) -> windows_core::HRESULT,
6689}
6690pub trait IExchangeImportContentsChanges2_Impl: IExchangeImportContentsChanges_Impl {
6691 fn ConfigForConversionStream(
6692 &self,
6693 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
6694 ulflags: u32,
6695 cvaluesconversion: u32,
6696 lpproparrayconversion: *mut SPropValue,
6697 ) -> windows_core::Result<()>;
6698 fn ImportMessageChangeAsAStream(
6699 &self,
6700 cpvalchanges: u32,
6701 ppvalchanges: *mut SPropValue,
6702 ulflags: u32,
6703 lppstream: windows_core::OutRef<'_, windows::Win32::System::Com::IStream>,
6704 ) -> windows_core::Result<()>;
6705}
6706impl IExchangeImportContentsChanges2_Vtbl {
6707 pub const fn new<Identity: IExchangeImportContentsChanges2_Impl, const OFFSET: isize>() -> Self
6708 {
6709 unsafe extern "system" fn ConfigForConversionStream<
6710 Identity: IExchangeImportContentsChanges2_Impl,
6711 const OFFSET: isize,
6712 >(
6713 this: *mut core::ffi::c_void,
6714 lpstream: *mut core::ffi::c_void,
6715 ulflags: u32,
6716 cvaluesconversion: u32,
6717 lpproparrayconversion: *mut SPropValue,
6718 ) -> windows_core::HRESULT {
6719 unsafe {
6720 let this: &Identity =
6721 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6722 IExchangeImportContentsChanges2_Impl::ConfigForConversionStream(
6723 this,
6724 core::mem::transmute_copy(&lpstream),
6725 core::mem::transmute_copy(&ulflags),
6726 core::mem::transmute_copy(&cvaluesconversion),
6727 core::mem::transmute_copy(&lpproparrayconversion),
6728 )
6729 .into()
6730 }
6731 }
6732 unsafe extern "system" fn ImportMessageChangeAsAStream<
6733 Identity: IExchangeImportContentsChanges2_Impl,
6734 const OFFSET: isize,
6735 >(
6736 this: *mut core::ffi::c_void,
6737 cpvalchanges: u32,
6738 ppvalchanges: *mut SPropValue,
6739 ulflags: u32,
6740 lppstream: *mut *mut core::ffi::c_void,
6741 ) -> windows_core::HRESULT {
6742 unsafe {
6743 let this: &Identity =
6744 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6745 IExchangeImportContentsChanges2_Impl::ImportMessageChangeAsAStream(
6746 this,
6747 core::mem::transmute_copy(&cpvalchanges),
6748 core::mem::transmute_copy(&ppvalchanges),
6749 core::mem::transmute_copy(&ulflags),
6750 core::mem::transmute_copy(&lppstream),
6751 )
6752 .into()
6753 }
6754 }
6755 Self {
6756 base__: IExchangeImportContentsChanges_Vtbl::new::<Identity, OFFSET>(),
6757 ConfigForConversionStream: ConfigForConversionStream::<Identity, OFFSET>,
6758 ImportMessageChangeAsAStream: ImportMessageChangeAsAStream::<Identity, OFFSET>,
6759 }
6760 }
6761 pub fn matches(iid: &windows_core::GUID) -> bool {
6762 iid == &<IExchangeImportContentsChanges2 as windows_core::Interface>::IID
6763 || iid == &<IExchangeImportContentsChanges as windows_core::Interface>::IID
6764 }
6765}
6766impl windows_core::RuntimeName for IExchangeImportContentsChanges2 {}
6767windows_core::imp::define_interface!(
6768 IExchangeImportHierarchyChanges,
6769 IExchangeImportHierarchyChanges_Vtbl,
6770 0x85a66cf0_d0e0_11cd_80fc_00aa004bba0b
6771);
6772windows_core::imp::interface_hierarchy!(IExchangeImportHierarchyChanges, windows_core::IUnknown);
6773impl IExchangeImportHierarchyChanges {
6774 pub unsafe fn GetLastError(
6775 &self,
6776 hresult: windows_core::HRESULT,
6777 ulflags: u32,
6778 lppmapierror: *mut *mut MAPIERROR,
6779 ) -> windows_core::Result<()> {
6780 unsafe {
6781 (windows_core::Interface::vtable(self).GetLastError)(
6782 windows_core::Interface::as_raw(self),
6783 hresult,
6784 ulflags,
6785 lppmapierror as _,
6786 )
6787 .ok()
6788 }
6789 }
6790 pub unsafe fn Config<P0>(&self, lpstream: P0, ulflags: u32) -> windows_core::Result<()>
6791 where
6792 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6793 {
6794 unsafe {
6795 (windows_core::Interface::vtable(self).Config)(
6796 windows_core::Interface::as_raw(self),
6797 lpstream.param().abi(),
6798 ulflags,
6799 )
6800 .ok()
6801 }
6802 }
6803 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
6804 where
6805 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6806 {
6807 unsafe {
6808 (windows_core::Interface::vtable(self).UpdateState)(
6809 windows_core::Interface::as_raw(self),
6810 lpstream.param().abi(),
6811 )
6812 .ok()
6813 }
6814 }
6815 pub unsafe fn ImportFolderChange(
6816 &self,
6817 cpvalchanges: u32,
6818 ppvalchanges: *mut SPropValue,
6819 ) -> windows_core::Result<()> {
6820 unsafe {
6821 (windows_core::Interface::vtable(self).ImportFolderChange)(
6822 windows_core::Interface::as_raw(self),
6823 cpvalchanges,
6824 ppvalchanges as _,
6825 )
6826 .ok()
6827 }
6828 }
6829 pub unsafe fn ImportFolderDeletion(
6830 &self,
6831 ulflags: u32,
6832 lpsrcentrylist: *mut SBinaryArray,
6833 ) -> windows_core::Result<()> {
6834 unsafe {
6835 (windows_core::Interface::vtable(self).ImportFolderDeletion)(
6836 windows_core::Interface::as_raw(self),
6837 ulflags,
6838 lpsrcentrylist as _,
6839 )
6840 .ok()
6841 }
6842 }
6843}
6844#[repr(C)]
6845pub struct IExchangeImportHierarchyChanges_Vtbl {
6846 pub base__: windows_core::IUnknown_Vtbl,
6847 pub GetLastError: unsafe extern "system" fn(
6848 *mut core::ffi::c_void,
6849 windows_core::HRESULT,
6850 u32,
6851 *mut *mut MAPIERROR,
6852 ) -> windows_core::HRESULT,
6853 pub Config: unsafe extern "system" fn(
6854 *mut core::ffi::c_void,
6855 *mut core::ffi::c_void,
6856 u32,
6857 ) -> windows_core::HRESULT,
6858 pub UpdateState: unsafe extern "system" fn(
6859 *mut core::ffi::c_void,
6860 *mut core::ffi::c_void,
6861 ) -> windows_core::HRESULT,
6862 pub ImportFolderChange: unsafe extern "system" fn(
6863 *mut core::ffi::c_void,
6864 u32,
6865 *mut SPropValue,
6866 ) -> windows_core::HRESULT,
6867 pub ImportFolderDeletion: unsafe extern "system" fn(
6868 *mut core::ffi::c_void,
6869 u32,
6870 *mut SBinaryArray,
6871 ) -> windows_core::HRESULT,
6872}
6873pub trait IExchangeImportHierarchyChanges_Impl: windows_core::IUnknownImpl {
6874 fn GetLastError(
6875 &self,
6876 hresult: windows_core::HRESULT,
6877 ulflags: u32,
6878 lppmapierror: *mut *mut MAPIERROR,
6879 ) -> windows_core::Result<()>;
6880 fn Config(
6881 &self,
6882 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
6883 ulflags: u32,
6884 ) -> windows_core::Result<()>;
6885 fn UpdateState(
6886 &self,
6887 lpstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
6888 ) -> windows_core::Result<()>;
6889 fn ImportFolderChange(
6890 &self,
6891 cpvalchanges: u32,
6892 ppvalchanges: *mut SPropValue,
6893 ) -> windows_core::Result<()>;
6894 fn ImportFolderDeletion(
6895 &self,
6896 ulflags: u32,
6897 lpsrcentrylist: *mut SBinaryArray,
6898 ) -> windows_core::Result<()>;
6899}
6900impl IExchangeImportHierarchyChanges_Vtbl {
6901 pub const fn new<Identity: IExchangeImportHierarchyChanges_Impl, const OFFSET: isize>() -> Self
6902 {
6903 unsafe extern "system" fn GetLastError<
6904 Identity: IExchangeImportHierarchyChanges_Impl,
6905 const OFFSET: isize,
6906 >(
6907 this: *mut core::ffi::c_void,
6908 hresult: windows_core::HRESULT,
6909 ulflags: u32,
6910 lppmapierror: *mut *mut MAPIERROR,
6911 ) -> windows_core::HRESULT {
6912 unsafe {
6913 let this: &Identity =
6914 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6915 IExchangeImportHierarchyChanges_Impl::GetLastError(
6916 this,
6917 core::mem::transmute_copy(&hresult),
6918 core::mem::transmute_copy(&ulflags),
6919 core::mem::transmute_copy(&lppmapierror),
6920 )
6921 .into()
6922 }
6923 }
6924 unsafe extern "system" fn Config<
6925 Identity: IExchangeImportHierarchyChanges_Impl,
6926 const OFFSET: isize,
6927 >(
6928 this: *mut core::ffi::c_void,
6929 lpstream: *mut core::ffi::c_void,
6930 ulflags: u32,
6931 ) -> windows_core::HRESULT {
6932 unsafe {
6933 let this: &Identity =
6934 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6935 IExchangeImportHierarchyChanges_Impl::Config(
6936 this,
6937 core::mem::transmute_copy(&lpstream),
6938 core::mem::transmute_copy(&ulflags),
6939 )
6940 .into()
6941 }
6942 }
6943 unsafe extern "system" fn UpdateState<
6944 Identity: IExchangeImportHierarchyChanges_Impl,
6945 const OFFSET: isize,
6946 >(
6947 this: *mut core::ffi::c_void,
6948 lpstream: *mut core::ffi::c_void,
6949 ) -> windows_core::HRESULT {
6950 unsafe {
6951 let this: &Identity =
6952 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6953 IExchangeImportHierarchyChanges_Impl::UpdateState(
6954 this,
6955 core::mem::transmute_copy(&lpstream),
6956 )
6957 .into()
6958 }
6959 }
6960 unsafe extern "system" fn ImportFolderChange<
6961 Identity: IExchangeImportHierarchyChanges_Impl,
6962 const OFFSET: isize,
6963 >(
6964 this: *mut core::ffi::c_void,
6965 cpvalchanges: u32,
6966 ppvalchanges: *mut SPropValue,
6967 ) -> windows_core::HRESULT {
6968 unsafe {
6969 let this: &Identity =
6970 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6971 IExchangeImportHierarchyChanges_Impl::ImportFolderChange(
6972 this,
6973 core::mem::transmute_copy(&cpvalchanges),
6974 core::mem::transmute_copy(&ppvalchanges),
6975 )
6976 .into()
6977 }
6978 }
6979 unsafe extern "system" fn ImportFolderDeletion<
6980 Identity: IExchangeImportHierarchyChanges_Impl,
6981 const OFFSET: isize,
6982 >(
6983 this: *mut core::ffi::c_void,
6984 ulflags: u32,
6985 lpsrcentrylist: *mut SBinaryArray,
6986 ) -> windows_core::HRESULT {
6987 unsafe {
6988 let this: &Identity =
6989 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6990 IExchangeImportHierarchyChanges_Impl::ImportFolderDeletion(
6991 this,
6992 core::mem::transmute_copy(&ulflags),
6993 core::mem::transmute_copy(&lpsrcentrylist),
6994 )
6995 .into()
6996 }
6997 }
6998 Self {
6999 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7000 GetLastError: GetLastError::<Identity, OFFSET>,
7001 Config: Config::<Identity, OFFSET>,
7002 UpdateState: UpdateState::<Identity, OFFSET>,
7003 ImportFolderChange: ImportFolderChange::<Identity, OFFSET>,
7004 ImportFolderDeletion: ImportFolderDeletion::<Identity, OFFSET>,
7005 }
7006 }
7007 pub fn matches(iid: &windows_core::GUID) -> bool {
7008 iid == &<IExchangeImportHierarchyChanges as windows_core::Interface>::IID
7009 }
7010}
7011impl windows_core::RuntimeName for IExchangeImportHierarchyChanges {}
7012windows_core::imp::define_interface!(
7013 IExchangeManageStore,
7014 IExchangeManageStore_Vtbl,
7015 0x559d10b0_a772_11cd_9bc8_00aa002fc45a
7016);
7017windows_core::imp::interface_hierarchy!(IExchangeManageStore, windows_core::IUnknown);
7018impl IExchangeManageStore {
7019 pub unsafe fn CreateStoreEntryID<P0, P1>(
7020 &self,
7021 lpszmsgstoredn: P0,
7022 lpszmailboxdn: P1,
7023 ulflags: u32,
7024 lpcbentryid: *mut u32,
7025 lppentryid: *mut *mut ENTRYID,
7026 ) -> windows_core::Result<()>
7027 where
7028 P0: windows_core::Param<windows_core::PCSTR>,
7029 P1: windows_core::Param<windows_core::PCSTR>,
7030 {
7031 unsafe {
7032 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
7033 windows_core::Interface::as_raw(self),
7034 lpszmsgstoredn.param().abi(),
7035 lpszmailboxdn.param().abi(),
7036 ulflags,
7037 lpcbentryid as _,
7038 lppentryid as _,
7039 )
7040 .ok()
7041 }
7042 }
7043 pub unsafe fn EntryIDFromSourceKey(
7044 &self,
7045 cfolderkeysize: u32,
7046 lpfoldersourcekey: *mut u8,
7047 cmessagekeysize: u32,
7048 lpmessagesourcekey: *mut u8,
7049 lpcbentryid: *mut u32,
7050 lppentryid: *mut *mut ENTRYID,
7051 ) -> windows_core::Result<()> {
7052 unsafe {
7053 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
7054 windows_core::Interface::as_raw(self),
7055 cfolderkeysize,
7056 lpfoldersourcekey as _,
7057 cmessagekeysize,
7058 lpmessagesourcekey as _,
7059 lpcbentryid as _,
7060 lppentryid as _,
7061 )
7062 .ok()
7063 }
7064 }
7065 pub unsafe fn GetRights(
7066 &self,
7067 cbuserentryid: u32,
7068 lpuserentryid: *mut ENTRYID,
7069 cbentryid: u32,
7070 lpentryid: *mut ENTRYID,
7071 lpulrights: *mut u32,
7072 ) -> windows_core::Result<()> {
7073 unsafe {
7074 (windows_core::Interface::vtable(self).GetRights)(
7075 windows_core::Interface::as_raw(self),
7076 cbuserentryid,
7077 lpuserentryid as _,
7078 cbentryid,
7079 lpentryid as _,
7080 lpulrights as _,
7081 )
7082 .ok()
7083 }
7084 }
7085 pub unsafe fn GetMailboxTable<P0>(
7086 &self,
7087 lpszservername: P0,
7088 lpptable: *mut Option<IMAPITable>,
7089 ulflags: u32,
7090 ) -> windows_core::Result<()>
7091 where
7092 P0: windows_core::Param<windows_core::PCSTR>,
7093 {
7094 unsafe {
7095 (windows_core::Interface::vtable(self).GetMailboxTable)(
7096 windows_core::Interface::as_raw(self),
7097 lpszservername.param().abi(),
7098 core::mem::transmute(lpptable),
7099 ulflags,
7100 )
7101 .ok()
7102 }
7103 }
7104 pub unsafe fn GetPublicFolderTable<P0>(
7105 &self,
7106 lpszservername: P0,
7107 lpptable: *mut Option<IMAPITable>,
7108 ulflags: u32,
7109 ) -> windows_core::Result<()>
7110 where
7111 P0: windows_core::Param<windows_core::PCSTR>,
7112 {
7113 unsafe {
7114 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
7115 windows_core::Interface::as_raw(self),
7116 lpszservername.param().abi(),
7117 core::mem::transmute(lpptable),
7118 ulflags,
7119 )
7120 .ok()
7121 }
7122 }
7123}
7124#[repr(C)]
7125pub struct IExchangeManageStore_Vtbl {
7126 pub base__: windows_core::IUnknown_Vtbl,
7127 pub CreateStoreEntryID: unsafe extern "system" fn(
7128 *mut core::ffi::c_void,
7129 windows_core::PCSTR,
7130 windows_core::PCSTR,
7131 u32,
7132 *mut u32,
7133 *mut *mut ENTRYID,
7134 ) -> windows_core::HRESULT,
7135 pub EntryIDFromSourceKey: unsafe extern "system" fn(
7136 *mut core::ffi::c_void,
7137 u32,
7138 *mut u8,
7139 u32,
7140 *mut u8,
7141 *mut u32,
7142 *mut *mut ENTRYID,
7143 ) -> windows_core::HRESULT,
7144 pub GetRights: unsafe extern "system" fn(
7145 *mut core::ffi::c_void,
7146 u32,
7147 *mut ENTRYID,
7148 u32,
7149 *mut ENTRYID,
7150 *mut u32,
7151 ) -> windows_core::HRESULT,
7152 pub GetMailboxTable: unsafe extern "system" fn(
7153 *mut core::ffi::c_void,
7154 windows_core::PCSTR,
7155 *mut *mut core::ffi::c_void,
7156 u32,
7157 ) -> windows_core::HRESULT,
7158 pub GetPublicFolderTable: unsafe extern "system" fn(
7159 *mut core::ffi::c_void,
7160 windows_core::PCSTR,
7161 *mut *mut core::ffi::c_void,
7162 u32,
7163 ) -> windows_core::HRESULT,
7164}
7165pub trait IExchangeManageStore_Impl: windows_core::IUnknownImpl {
7166 fn CreateStoreEntryID(
7167 &self,
7168 lpszmsgstoredn: &windows_core::PCSTR,
7169 lpszmailboxdn: &windows_core::PCSTR,
7170 ulflags: u32,
7171 lpcbentryid: *mut u32,
7172 lppentryid: *mut *mut ENTRYID,
7173 ) -> windows_core::Result<()>;
7174 fn EntryIDFromSourceKey(
7175 &self,
7176 cfolderkeysize: u32,
7177 lpfoldersourcekey: *mut u8,
7178 cmessagekeysize: u32,
7179 lpmessagesourcekey: *mut u8,
7180 lpcbentryid: *mut u32,
7181 lppentryid: *mut *mut ENTRYID,
7182 ) -> windows_core::Result<()>;
7183 fn GetRights(
7184 &self,
7185 cbuserentryid: u32,
7186 lpuserentryid: *mut ENTRYID,
7187 cbentryid: u32,
7188 lpentryid: *mut ENTRYID,
7189 lpulrights: *mut u32,
7190 ) -> windows_core::Result<()>;
7191 fn GetMailboxTable(
7192 &self,
7193 lpszservername: &windows_core::PCSTR,
7194 lpptable: windows_core::OutRef<'_, IMAPITable>,
7195 ulflags: u32,
7196 ) -> windows_core::Result<()>;
7197 fn GetPublicFolderTable(
7198 &self,
7199 lpszservername: &windows_core::PCSTR,
7200 lpptable: windows_core::OutRef<'_, IMAPITable>,
7201 ulflags: u32,
7202 ) -> windows_core::Result<()>;
7203}
7204impl IExchangeManageStore_Vtbl {
7205 pub const fn new<Identity: IExchangeManageStore_Impl, const OFFSET: isize>() -> Self {
7206 unsafe extern "system" fn CreateStoreEntryID<
7207 Identity: IExchangeManageStore_Impl,
7208 const OFFSET: isize,
7209 >(
7210 this: *mut core::ffi::c_void,
7211 lpszmsgstoredn: windows_core::PCSTR,
7212 lpszmailboxdn: windows_core::PCSTR,
7213 ulflags: u32,
7214 lpcbentryid: *mut u32,
7215 lppentryid: *mut *mut ENTRYID,
7216 ) -> windows_core::HRESULT {
7217 unsafe {
7218 let this: &Identity =
7219 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7220 IExchangeManageStore_Impl::CreateStoreEntryID(
7221 this,
7222 core::mem::transmute(&lpszmsgstoredn),
7223 core::mem::transmute(&lpszmailboxdn),
7224 core::mem::transmute_copy(&ulflags),
7225 core::mem::transmute_copy(&lpcbentryid),
7226 core::mem::transmute_copy(&lppentryid),
7227 )
7228 .into()
7229 }
7230 }
7231 unsafe extern "system" fn EntryIDFromSourceKey<
7232 Identity: IExchangeManageStore_Impl,
7233 const OFFSET: isize,
7234 >(
7235 this: *mut core::ffi::c_void,
7236 cfolderkeysize: u32,
7237 lpfoldersourcekey: *mut u8,
7238 cmessagekeysize: u32,
7239 lpmessagesourcekey: *mut u8,
7240 lpcbentryid: *mut u32,
7241 lppentryid: *mut *mut ENTRYID,
7242 ) -> windows_core::HRESULT {
7243 unsafe {
7244 let this: &Identity =
7245 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7246 IExchangeManageStore_Impl::EntryIDFromSourceKey(
7247 this,
7248 core::mem::transmute_copy(&cfolderkeysize),
7249 core::mem::transmute_copy(&lpfoldersourcekey),
7250 core::mem::transmute_copy(&cmessagekeysize),
7251 core::mem::transmute_copy(&lpmessagesourcekey),
7252 core::mem::transmute_copy(&lpcbentryid),
7253 core::mem::transmute_copy(&lppentryid),
7254 )
7255 .into()
7256 }
7257 }
7258 unsafe extern "system" fn GetRights<
7259 Identity: IExchangeManageStore_Impl,
7260 const OFFSET: isize,
7261 >(
7262 this: *mut core::ffi::c_void,
7263 cbuserentryid: u32,
7264 lpuserentryid: *mut ENTRYID,
7265 cbentryid: u32,
7266 lpentryid: *mut ENTRYID,
7267 lpulrights: *mut u32,
7268 ) -> windows_core::HRESULT {
7269 unsafe {
7270 let this: &Identity =
7271 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7272 IExchangeManageStore_Impl::GetRights(
7273 this,
7274 core::mem::transmute_copy(&cbuserentryid),
7275 core::mem::transmute_copy(&lpuserentryid),
7276 core::mem::transmute_copy(&cbentryid),
7277 core::mem::transmute_copy(&lpentryid),
7278 core::mem::transmute_copy(&lpulrights),
7279 )
7280 .into()
7281 }
7282 }
7283 unsafe extern "system" fn GetMailboxTable<
7284 Identity: IExchangeManageStore_Impl,
7285 const OFFSET: isize,
7286 >(
7287 this: *mut core::ffi::c_void,
7288 lpszservername: windows_core::PCSTR,
7289 lpptable: *mut *mut core::ffi::c_void,
7290 ulflags: u32,
7291 ) -> windows_core::HRESULT {
7292 unsafe {
7293 let this: &Identity =
7294 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7295 IExchangeManageStore_Impl::GetMailboxTable(
7296 this,
7297 core::mem::transmute(&lpszservername),
7298 core::mem::transmute_copy(&lpptable),
7299 core::mem::transmute_copy(&ulflags),
7300 )
7301 .into()
7302 }
7303 }
7304 unsafe extern "system" fn GetPublicFolderTable<
7305 Identity: IExchangeManageStore_Impl,
7306 const OFFSET: isize,
7307 >(
7308 this: *mut core::ffi::c_void,
7309 lpszservername: windows_core::PCSTR,
7310 lpptable: *mut *mut core::ffi::c_void,
7311 ulflags: u32,
7312 ) -> windows_core::HRESULT {
7313 unsafe {
7314 let this: &Identity =
7315 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7316 IExchangeManageStore_Impl::GetPublicFolderTable(
7317 this,
7318 core::mem::transmute(&lpszservername),
7319 core::mem::transmute_copy(&lpptable),
7320 core::mem::transmute_copy(&ulflags),
7321 )
7322 .into()
7323 }
7324 }
7325 Self {
7326 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7327 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
7328 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
7329 GetRights: GetRights::<Identity, OFFSET>,
7330 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
7331 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
7332 }
7333 }
7334 pub fn matches(iid: &windows_core::GUID) -> bool {
7335 iid == &<IExchangeManageStore as windows_core::Interface>::IID
7336 }
7337}
7338impl windows_core::RuntimeName for IExchangeManageStore {}
7339windows_core::imp::define_interface!(
7340 IExchangeManageStore2,
7341 IExchangeManageStore2_Vtbl,
7342 0xb6dca470_0ff3_11d0_a409_00c04fd7bd87
7343);
7344windows_core::imp::interface_hierarchy!(IExchangeManageStore2, windows_core::IUnknown);
7345impl IExchangeManageStore2 {
7346 pub unsafe fn CreateStoreEntryID<P0, P1>(
7347 &self,
7348 lpszmsgstoredn: P0,
7349 lpszmailboxdn: P1,
7350 ulflags: u32,
7351 lpcbentryid: *mut u32,
7352 lppentryid: *mut *mut ENTRYID,
7353 ) -> windows_core::Result<()>
7354 where
7355 P0: windows_core::Param<windows_core::PCSTR>,
7356 P1: windows_core::Param<windows_core::PCSTR>,
7357 {
7358 unsafe {
7359 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
7360 windows_core::Interface::as_raw(self),
7361 lpszmsgstoredn.param().abi(),
7362 lpszmailboxdn.param().abi(),
7363 ulflags,
7364 lpcbentryid as _,
7365 lppentryid as _,
7366 )
7367 .ok()
7368 }
7369 }
7370 pub unsafe fn EntryIDFromSourceKey(
7371 &self,
7372 cfolderkeysize: u32,
7373 lpfoldersourcekey: *mut u8,
7374 cmessagekeysize: u32,
7375 lpmessagesourcekey: *mut u8,
7376 lpcbentryid: *mut u32,
7377 lppentryid: *mut *mut ENTRYID,
7378 ) -> windows_core::Result<()> {
7379 unsafe {
7380 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
7381 windows_core::Interface::as_raw(self),
7382 cfolderkeysize,
7383 lpfoldersourcekey as _,
7384 cmessagekeysize,
7385 lpmessagesourcekey as _,
7386 lpcbentryid as _,
7387 lppentryid as _,
7388 )
7389 .ok()
7390 }
7391 }
7392 pub unsafe fn GetRights(
7393 &self,
7394 cbuserentryid: u32,
7395 lpuserentryid: *mut ENTRYID,
7396 cbentryid: u32,
7397 lpentryid: *mut ENTRYID,
7398 lpulrights: *mut u32,
7399 ) -> windows_core::Result<()> {
7400 unsafe {
7401 (windows_core::Interface::vtable(self).GetRights)(
7402 windows_core::Interface::as_raw(self),
7403 cbuserentryid,
7404 lpuserentryid as _,
7405 cbentryid,
7406 lpentryid as _,
7407 lpulrights as _,
7408 )
7409 .ok()
7410 }
7411 }
7412 pub unsafe fn GetMailboxTable<P0>(
7413 &self,
7414 lpszservername: P0,
7415 lpptable: *mut Option<IMAPITable>,
7416 ulflags: u32,
7417 ) -> windows_core::Result<()>
7418 where
7419 P0: windows_core::Param<windows_core::PCSTR>,
7420 {
7421 unsafe {
7422 (windows_core::Interface::vtable(self).GetMailboxTable)(
7423 windows_core::Interface::as_raw(self),
7424 lpszservername.param().abi(),
7425 core::mem::transmute(lpptable),
7426 ulflags,
7427 )
7428 .ok()
7429 }
7430 }
7431 pub unsafe fn GetPublicFolderTable<P0>(
7432 &self,
7433 lpszservername: P0,
7434 lpptable: *mut Option<IMAPITable>,
7435 ulflags: u32,
7436 ) -> windows_core::Result<()>
7437 where
7438 P0: windows_core::Param<windows_core::PCSTR>,
7439 {
7440 unsafe {
7441 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
7442 windows_core::Interface::as_raw(self),
7443 lpszservername.param().abi(),
7444 core::mem::transmute(lpptable),
7445 ulflags,
7446 )
7447 .ok()
7448 }
7449 }
7450 pub unsafe fn CreateNewsgroupNameEntryID<P0>(
7451 &self,
7452 lpsznewsgroupname: P0,
7453 lpcbentryid: *mut u32,
7454 lppentryid: *mut *mut ENTRYID,
7455 ) -> windows_core::Result<()>
7456 where
7457 P0: windows_core::Param<windows_core::PCSTR>,
7458 {
7459 unsafe {
7460 (windows_core::Interface::vtable(self).CreateNewsgroupNameEntryID)(
7461 windows_core::Interface::as_raw(self),
7462 lpsznewsgroupname.param().abi(),
7463 lpcbentryid as _,
7464 lppentryid as _,
7465 )
7466 .ok()
7467 }
7468 }
7469}
7470#[repr(C)]
7471pub struct IExchangeManageStore2_Vtbl {
7472 pub base__: windows_core::IUnknown_Vtbl,
7473 pub CreateStoreEntryID: unsafe extern "system" fn(
7474 *mut core::ffi::c_void,
7475 windows_core::PCSTR,
7476 windows_core::PCSTR,
7477 u32,
7478 *mut u32,
7479 *mut *mut ENTRYID,
7480 ) -> windows_core::HRESULT,
7481 pub EntryIDFromSourceKey: unsafe extern "system" fn(
7482 *mut core::ffi::c_void,
7483 u32,
7484 *mut u8,
7485 u32,
7486 *mut u8,
7487 *mut u32,
7488 *mut *mut ENTRYID,
7489 ) -> windows_core::HRESULT,
7490 pub GetRights: unsafe extern "system" fn(
7491 *mut core::ffi::c_void,
7492 u32,
7493 *mut ENTRYID,
7494 u32,
7495 *mut ENTRYID,
7496 *mut u32,
7497 ) -> windows_core::HRESULT,
7498 pub GetMailboxTable: unsafe extern "system" fn(
7499 *mut core::ffi::c_void,
7500 windows_core::PCSTR,
7501 *mut *mut core::ffi::c_void,
7502 u32,
7503 ) -> windows_core::HRESULT,
7504 pub GetPublicFolderTable: unsafe extern "system" fn(
7505 *mut core::ffi::c_void,
7506 windows_core::PCSTR,
7507 *mut *mut core::ffi::c_void,
7508 u32,
7509 ) -> windows_core::HRESULT,
7510 pub CreateNewsgroupNameEntryID: unsafe extern "system" fn(
7511 *mut core::ffi::c_void,
7512 windows_core::PCSTR,
7513 *mut u32,
7514 *mut *mut ENTRYID,
7515 ) -> windows_core::HRESULT,
7516}
7517pub trait IExchangeManageStore2_Impl: windows_core::IUnknownImpl {
7518 fn CreateStoreEntryID(
7519 &self,
7520 lpszmsgstoredn: &windows_core::PCSTR,
7521 lpszmailboxdn: &windows_core::PCSTR,
7522 ulflags: u32,
7523 lpcbentryid: *mut u32,
7524 lppentryid: *mut *mut ENTRYID,
7525 ) -> windows_core::Result<()>;
7526 fn EntryIDFromSourceKey(
7527 &self,
7528 cfolderkeysize: u32,
7529 lpfoldersourcekey: *mut u8,
7530 cmessagekeysize: u32,
7531 lpmessagesourcekey: *mut u8,
7532 lpcbentryid: *mut u32,
7533 lppentryid: *mut *mut ENTRYID,
7534 ) -> windows_core::Result<()>;
7535 fn GetRights(
7536 &self,
7537 cbuserentryid: u32,
7538 lpuserentryid: *mut ENTRYID,
7539 cbentryid: u32,
7540 lpentryid: *mut ENTRYID,
7541 lpulrights: *mut u32,
7542 ) -> windows_core::Result<()>;
7543 fn GetMailboxTable(
7544 &self,
7545 lpszservername: &windows_core::PCSTR,
7546 lpptable: windows_core::OutRef<'_, IMAPITable>,
7547 ulflags: u32,
7548 ) -> windows_core::Result<()>;
7549 fn GetPublicFolderTable(
7550 &self,
7551 lpszservername: &windows_core::PCSTR,
7552 lpptable: windows_core::OutRef<'_, IMAPITable>,
7553 ulflags: u32,
7554 ) -> windows_core::Result<()>;
7555 fn CreateNewsgroupNameEntryID(
7556 &self,
7557 lpsznewsgroupname: &windows_core::PCSTR,
7558 lpcbentryid: *mut u32,
7559 lppentryid: *mut *mut ENTRYID,
7560 ) -> windows_core::Result<()>;
7561}
7562impl IExchangeManageStore2_Vtbl {
7563 pub const fn new<Identity: IExchangeManageStore2_Impl, const OFFSET: isize>() -> Self {
7564 unsafe extern "system" fn CreateStoreEntryID<
7565 Identity: IExchangeManageStore2_Impl,
7566 const OFFSET: isize,
7567 >(
7568 this: *mut core::ffi::c_void,
7569 lpszmsgstoredn: windows_core::PCSTR,
7570 lpszmailboxdn: windows_core::PCSTR,
7571 ulflags: u32,
7572 lpcbentryid: *mut u32,
7573 lppentryid: *mut *mut ENTRYID,
7574 ) -> windows_core::HRESULT {
7575 unsafe {
7576 let this: &Identity =
7577 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7578 IExchangeManageStore2_Impl::CreateStoreEntryID(
7579 this,
7580 core::mem::transmute(&lpszmsgstoredn),
7581 core::mem::transmute(&lpszmailboxdn),
7582 core::mem::transmute_copy(&ulflags),
7583 core::mem::transmute_copy(&lpcbentryid),
7584 core::mem::transmute_copy(&lppentryid),
7585 )
7586 .into()
7587 }
7588 }
7589 unsafe extern "system" fn EntryIDFromSourceKey<
7590 Identity: IExchangeManageStore2_Impl,
7591 const OFFSET: isize,
7592 >(
7593 this: *mut core::ffi::c_void,
7594 cfolderkeysize: u32,
7595 lpfoldersourcekey: *mut u8,
7596 cmessagekeysize: u32,
7597 lpmessagesourcekey: *mut u8,
7598 lpcbentryid: *mut u32,
7599 lppentryid: *mut *mut ENTRYID,
7600 ) -> windows_core::HRESULT {
7601 unsafe {
7602 let this: &Identity =
7603 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7604 IExchangeManageStore2_Impl::EntryIDFromSourceKey(
7605 this,
7606 core::mem::transmute_copy(&cfolderkeysize),
7607 core::mem::transmute_copy(&lpfoldersourcekey),
7608 core::mem::transmute_copy(&cmessagekeysize),
7609 core::mem::transmute_copy(&lpmessagesourcekey),
7610 core::mem::transmute_copy(&lpcbentryid),
7611 core::mem::transmute_copy(&lppentryid),
7612 )
7613 .into()
7614 }
7615 }
7616 unsafe extern "system" fn GetRights<
7617 Identity: IExchangeManageStore2_Impl,
7618 const OFFSET: isize,
7619 >(
7620 this: *mut core::ffi::c_void,
7621 cbuserentryid: u32,
7622 lpuserentryid: *mut ENTRYID,
7623 cbentryid: u32,
7624 lpentryid: *mut ENTRYID,
7625 lpulrights: *mut u32,
7626 ) -> windows_core::HRESULT {
7627 unsafe {
7628 let this: &Identity =
7629 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7630 IExchangeManageStore2_Impl::GetRights(
7631 this,
7632 core::mem::transmute_copy(&cbuserentryid),
7633 core::mem::transmute_copy(&lpuserentryid),
7634 core::mem::transmute_copy(&cbentryid),
7635 core::mem::transmute_copy(&lpentryid),
7636 core::mem::transmute_copy(&lpulrights),
7637 )
7638 .into()
7639 }
7640 }
7641 unsafe extern "system" fn GetMailboxTable<
7642 Identity: IExchangeManageStore2_Impl,
7643 const OFFSET: isize,
7644 >(
7645 this: *mut core::ffi::c_void,
7646 lpszservername: windows_core::PCSTR,
7647 lpptable: *mut *mut core::ffi::c_void,
7648 ulflags: u32,
7649 ) -> windows_core::HRESULT {
7650 unsafe {
7651 let this: &Identity =
7652 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7653 IExchangeManageStore2_Impl::GetMailboxTable(
7654 this,
7655 core::mem::transmute(&lpszservername),
7656 core::mem::transmute_copy(&lpptable),
7657 core::mem::transmute_copy(&ulflags),
7658 )
7659 .into()
7660 }
7661 }
7662 unsafe extern "system" fn GetPublicFolderTable<
7663 Identity: IExchangeManageStore2_Impl,
7664 const OFFSET: isize,
7665 >(
7666 this: *mut core::ffi::c_void,
7667 lpszservername: windows_core::PCSTR,
7668 lpptable: *mut *mut core::ffi::c_void,
7669 ulflags: u32,
7670 ) -> windows_core::HRESULT {
7671 unsafe {
7672 let this: &Identity =
7673 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7674 IExchangeManageStore2_Impl::GetPublicFolderTable(
7675 this,
7676 core::mem::transmute(&lpszservername),
7677 core::mem::transmute_copy(&lpptable),
7678 core::mem::transmute_copy(&ulflags),
7679 )
7680 .into()
7681 }
7682 }
7683 unsafe extern "system" fn CreateNewsgroupNameEntryID<
7684 Identity: IExchangeManageStore2_Impl,
7685 const OFFSET: isize,
7686 >(
7687 this: *mut core::ffi::c_void,
7688 lpsznewsgroupname: windows_core::PCSTR,
7689 lpcbentryid: *mut u32,
7690 lppentryid: *mut *mut ENTRYID,
7691 ) -> windows_core::HRESULT {
7692 unsafe {
7693 let this: &Identity =
7694 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7695 IExchangeManageStore2_Impl::CreateNewsgroupNameEntryID(
7696 this,
7697 core::mem::transmute(&lpsznewsgroupname),
7698 core::mem::transmute_copy(&lpcbentryid),
7699 core::mem::transmute_copy(&lppentryid),
7700 )
7701 .into()
7702 }
7703 }
7704 Self {
7705 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7706 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
7707 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
7708 GetRights: GetRights::<Identity, OFFSET>,
7709 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
7710 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
7711 CreateNewsgroupNameEntryID: CreateNewsgroupNameEntryID::<Identity, OFFSET>,
7712 }
7713 }
7714 pub fn matches(iid: &windows_core::GUID) -> bool {
7715 iid == &<IExchangeManageStore2 as windows_core::Interface>::IID
7716 }
7717}
7718impl windows_core::RuntimeName for IExchangeManageStore2 {}
7719windows_core::imp::define_interface!(
7720 IExchangeManageStore3,
7721 IExchangeManageStore3_Vtbl,
7722 0x166d9bc2_db75_44a9_8a93_9f3ffc994d76
7723);
7724windows_core::imp::interface_hierarchy!(IExchangeManageStore3, windows_core::IUnknown);
7725impl IExchangeManageStore3 {
7726 pub unsafe fn CreateStoreEntryID<P0, P1>(
7727 &self,
7728 lpszmsgstoredn: P0,
7729 lpszmailboxdn: P1,
7730 ulflags: u32,
7731 lpcbentryid: *mut u32,
7732 lppentryid: *mut *mut ENTRYID,
7733 ) -> windows_core::Result<()>
7734 where
7735 P0: windows_core::Param<windows_core::PCSTR>,
7736 P1: windows_core::Param<windows_core::PCSTR>,
7737 {
7738 unsafe {
7739 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
7740 windows_core::Interface::as_raw(self),
7741 lpszmsgstoredn.param().abi(),
7742 lpszmailboxdn.param().abi(),
7743 ulflags,
7744 lpcbentryid as _,
7745 lppentryid as _,
7746 )
7747 .ok()
7748 }
7749 }
7750 pub unsafe fn EntryIDFromSourceKey(
7751 &self,
7752 cfolderkeysize: u32,
7753 lpfoldersourcekey: *mut u8,
7754 cmessagekeysize: u32,
7755 lpmessagesourcekey: *mut u8,
7756 lpcbentryid: *mut u32,
7757 lppentryid: *mut *mut ENTRYID,
7758 ) -> windows_core::Result<()> {
7759 unsafe {
7760 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
7761 windows_core::Interface::as_raw(self),
7762 cfolderkeysize,
7763 lpfoldersourcekey as _,
7764 cmessagekeysize,
7765 lpmessagesourcekey as _,
7766 lpcbentryid as _,
7767 lppentryid as _,
7768 )
7769 .ok()
7770 }
7771 }
7772 pub unsafe fn GetRights(
7773 &self,
7774 cbuserentryid: u32,
7775 lpuserentryid: *mut ENTRYID,
7776 cbentryid: u32,
7777 lpentryid: *mut ENTRYID,
7778 lpulrights: *mut u32,
7779 ) -> windows_core::Result<()> {
7780 unsafe {
7781 (windows_core::Interface::vtable(self).GetRights)(
7782 windows_core::Interface::as_raw(self),
7783 cbuserentryid,
7784 lpuserentryid as _,
7785 cbentryid,
7786 lpentryid as _,
7787 lpulrights as _,
7788 )
7789 .ok()
7790 }
7791 }
7792 pub unsafe fn GetMailboxTable<P0>(
7793 &self,
7794 lpszservername: P0,
7795 lpptable: *mut Option<IMAPITable>,
7796 ulflags: u32,
7797 ) -> windows_core::Result<()>
7798 where
7799 P0: windows_core::Param<windows_core::PCSTR>,
7800 {
7801 unsafe {
7802 (windows_core::Interface::vtable(self).GetMailboxTable)(
7803 windows_core::Interface::as_raw(self),
7804 lpszservername.param().abi(),
7805 core::mem::transmute(lpptable),
7806 ulflags,
7807 )
7808 .ok()
7809 }
7810 }
7811 pub unsafe fn GetPublicFolderTable<P0>(
7812 &self,
7813 lpszservername: P0,
7814 lpptable: *mut Option<IMAPITable>,
7815 ulflags: u32,
7816 ) -> windows_core::Result<()>
7817 where
7818 P0: windows_core::Param<windows_core::PCSTR>,
7819 {
7820 unsafe {
7821 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
7822 windows_core::Interface::as_raw(self),
7823 lpszservername.param().abi(),
7824 core::mem::transmute(lpptable),
7825 ulflags,
7826 )
7827 .ok()
7828 }
7829 }
7830 pub unsafe fn CreateNewsgroupNameEntryID<P0>(
7831 &self,
7832 lpsznewsgroupname: P0,
7833 lpcbentryid: *mut u32,
7834 lppentryid: *mut *mut ENTRYID,
7835 ) -> windows_core::Result<()>
7836 where
7837 P0: windows_core::Param<windows_core::PCSTR>,
7838 {
7839 unsafe {
7840 (windows_core::Interface::vtable(self).CreateNewsgroupNameEntryID)(
7841 windows_core::Interface::as_raw(self),
7842 lpsznewsgroupname.param().abi(),
7843 lpcbentryid as _,
7844 lppentryid as _,
7845 )
7846 .ok()
7847 }
7848 }
7849 pub unsafe fn GetMailboxTableOffset<P0>(
7850 &self,
7851 lpszservername: P0,
7852 lpptable: *mut Option<IMAPITable>,
7853 ulflags: u32,
7854 uoffset: u32,
7855 ) -> windows_core::Result<()>
7856 where
7857 P0: windows_core::Param<windows_core::PCSTR>,
7858 {
7859 unsafe {
7860 (windows_core::Interface::vtable(self).GetMailboxTableOffset)(
7861 windows_core::Interface::as_raw(self),
7862 lpszservername.param().abi(),
7863 core::mem::transmute(lpptable),
7864 ulflags,
7865 uoffset,
7866 )
7867 .ok()
7868 }
7869 }
7870}
7871#[repr(C)]
7872pub struct IExchangeManageStore3_Vtbl {
7873 pub base__: windows_core::IUnknown_Vtbl,
7874 pub CreateStoreEntryID: unsafe extern "system" fn(
7875 *mut core::ffi::c_void,
7876 windows_core::PCSTR,
7877 windows_core::PCSTR,
7878 u32,
7879 *mut u32,
7880 *mut *mut ENTRYID,
7881 ) -> windows_core::HRESULT,
7882 pub EntryIDFromSourceKey: unsafe extern "system" fn(
7883 *mut core::ffi::c_void,
7884 u32,
7885 *mut u8,
7886 u32,
7887 *mut u8,
7888 *mut u32,
7889 *mut *mut ENTRYID,
7890 ) -> windows_core::HRESULT,
7891 pub GetRights: unsafe extern "system" fn(
7892 *mut core::ffi::c_void,
7893 u32,
7894 *mut ENTRYID,
7895 u32,
7896 *mut ENTRYID,
7897 *mut u32,
7898 ) -> windows_core::HRESULT,
7899 pub GetMailboxTable: unsafe extern "system" fn(
7900 *mut core::ffi::c_void,
7901 windows_core::PCSTR,
7902 *mut *mut core::ffi::c_void,
7903 u32,
7904 ) -> windows_core::HRESULT,
7905 pub GetPublicFolderTable: unsafe extern "system" fn(
7906 *mut core::ffi::c_void,
7907 windows_core::PCSTR,
7908 *mut *mut core::ffi::c_void,
7909 u32,
7910 ) -> windows_core::HRESULT,
7911 pub CreateNewsgroupNameEntryID: unsafe extern "system" fn(
7912 *mut core::ffi::c_void,
7913 windows_core::PCSTR,
7914 *mut u32,
7915 *mut *mut ENTRYID,
7916 ) -> windows_core::HRESULT,
7917 pub GetMailboxTableOffset: unsafe extern "system" fn(
7918 *mut core::ffi::c_void,
7919 windows_core::PCSTR,
7920 *mut *mut core::ffi::c_void,
7921 u32,
7922 u32,
7923 ) -> windows_core::HRESULT,
7924}
7925pub trait IExchangeManageStore3_Impl: windows_core::IUnknownImpl {
7926 fn CreateStoreEntryID(
7927 &self,
7928 lpszmsgstoredn: &windows_core::PCSTR,
7929 lpszmailboxdn: &windows_core::PCSTR,
7930 ulflags: u32,
7931 lpcbentryid: *mut u32,
7932 lppentryid: *mut *mut ENTRYID,
7933 ) -> windows_core::Result<()>;
7934 fn EntryIDFromSourceKey(
7935 &self,
7936 cfolderkeysize: u32,
7937 lpfoldersourcekey: *mut u8,
7938 cmessagekeysize: u32,
7939 lpmessagesourcekey: *mut u8,
7940 lpcbentryid: *mut u32,
7941 lppentryid: *mut *mut ENTRYID,
7942 ) -> windows_core::Result<()>;
7943 fn GetRights(
7944 &self,
7945 cbuserentryid: u32,
7946 lpuserentryid: *mut ENTRYID,
7947 cbentryid: u32,
7948 lpentryid: *mut ENTRYID,
7949 lpulrights: *mut u32,
7950 ) -> windows_core::Result<()>;
7951 fn GetMailboxTable(
7952 &self,
7953 lpszservername: &windows_core::PCSTR,
7954 lpptable: windows_core::OutRef<'_, IMAPITable>,
7955 ulflags: u32,
7956 ) -> windows_core::Result<()>;
7957 fn GetPublicFolderTable(
7958 &self,
7959 lpszservername: &windows_core::PCSTR,
7960 lpptable: windows_core::OutRef<'_, IMAPITable>,
7961 ulflags: u32,
7962 ) -> windows_core::Result<()>;
7963 fn CreateNewsgroupNameEntryID(
7964 &self,
7965 lpsznewsgroupname: &windows_core::PCSTR,
7966 lpcbentryid: *mut u32,
7967 lppentryid: *mut *mut ENTRYID,
7968 ) -> windows_core::Result<()>;
7969 fn GetMailboxTableOffset(
7970 &self,
7971 lpszservername: &windows_core::PCSTR,
7972 lpptable: windows_core::OutRef<'_, IMAPITable>,
7973 ulflags: u32,
7974 uoffset: u32,
7975 ) -> windows_core::Result<()>;
7976}
7977impl IExchangeManageStore3_Vtbl {
7978 pub const fn new<Identity: IExchangeManageStore3_Impl, const OFFSET: isize>() -> Self {
7979 unsafe extern "system" fn CreateStoreEntryID<
7980 Identity: IExchangeManageStore3_Impl,
7981 const OFFSET: isize,
7982 >(
7983 this: *mut core::ffi::c_void,
7984 lpszmsgstoredn: windows_core::PCSTR,
7985 lpszmailboxdn: windows_core::PCSTR,
7986 ulflags: u32,
7987 lpcbentryid: *mut u32,
7988 lppentryid: *mut *mut ENTRYID,
7989 ) -> windows_core::HRESULT {
7990 unsafe {
7991 let this: &Identity =
7992 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7993 IExchangeManageStore3_Impl::CreateStoreEntryID(
7994 this,
7995 core::mem::transmute(&lpszmsgstoredn),
7996 core::mem::transmute(&lpszmailboxdn),
7997 core::mem::transmute_copy(&ulflags),
7998 core::mem::transmute_copy(&lpcbentryid),
7999 core::mem::transmute_copy(&lppentryid),
8000 )
8001 .into()
8002 }
8003 }
8004 unsafe extern "system" fn EntryIDFromSourceKey<
8005 Identity: IExchangeManageStore3_Impl,
8006 const OFFSET: isize,
8007 >(
8008 this: *mut core::ffi::c_void,
8009 cfolderkeysize: u32,
8010 lpfoldersourcekey: *mut u8,
8011 cmessagekeysize: u32,
8012 lpmessagesourcekey: *mut u8,
8013 lpcbentryid: *mut u32,
8014 lppentryid: *mut *mut ENTRYID,
8015 ) -> windows_core::HRESULT {
8016 unsafe {
8017 let this: &Identity =
8018 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8019 IExchangeManageStore3_Impl::EntryIDFromSourceKey(
8020 this,
8021 core::mem::transmute_copy(&cfolderkeysize),
8022 core::mem::transmute_copy(&lpfoldersourcekey),
8023 core::mem::transmute_copy(&cmessagekeysize),
8024 core::mem::transmute_copy(&lpmessagesourcekey),
8025 core::mem::transmute_copy(&lpcbentryid),
8026 core::mem::transmute_copy(&lppentryid),
8027 )
8028 .into()
8029 }
8030 }
8031 unsafe extern "system" fn GetRights<
8032 Identity: IExchangeManageStore3_Impl,
8033 const OFFSET: isize,
8034 >(
8035 this: *mut core::ffi::c_void,
8036 cbuserentryid: u32,
8037 lpuserentryid: *mut ENTRYID,
8038 cbentryid: u32,
8039 lpentryid: *mut ENTRYID,
8040 lpulrights: *mut u32,
8041 ) -> windows_core::HRESULT {
8042 unsafe {
8043 let this: &Identity =
8044 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8045 IExchangeManageStore3_Impl::GetRights(
8046 this,
8047 core::mem::transmute_copy(&cbuserentryid),
8048 core::mem::transmute_copy(&lpuserentryid),
8049 core::mem::transmute_copy(&cbentryid),
8050 core::mem::transmute_copy(&lpentryid),
8051 core::mem::transmute_copy(&lpulrights),
8052 )
8053 .into()
8054 }
8055 }
8056 unsafe extern "system" fn GetMailboxTable<
8057 Identity: IExchangeManageStore3_Impl,
8058 const OFFSET: isize,
8059 >(
8060 this: *mut core::ffi::c_void,
8061 lpszservername: windows_core::PCSTR,
8062 lpptable: *mut *mut core::ffi::c_void,
8063 ulflags: u32,
8064 ) -> windows_core::HRESULT {
8065 unsafe {
8066 let this: &Identity =
8067 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8068 IExchangeManageStore3_Impl::GetMailboxTable(
8069 this,
8070 core::mem::transmute(&lpszservername),
8071 core::mem::transmute_copy(&lpptable),
8072 core::mem::transmute_copy(&ulflags),
8073 )
8074 .into()
8075 }
8076 }
8077 unsafe extern "system" fn GetPublicFolderTable<
8078 Identity: IExchangeManageStore3_Impl,
8079 const OFFSET: isize,
8080 >(
8081 this: *mut core::ffi::c_void,
8082 lpszservername: windows_core::PCSTR,
8083 lpptable: *mut *mut core::ffi::c_void,
8084 ulflags: u32,
8085 ) -> windows_core::HRESULT {
8086 unsafe {
8087 let this: &Identity =
8088 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8089 IExchangeManageStore3_Impl::GetPublicFolderTable(
8090 this,
8091 core::mem::transmute(&lpszservername),
8092 core::mem::transmute_copy(&lpptable),
8093 core::mem::transmute_copy(&ulflags),
8094 )
8095 .into()
8096 }
8097 }
8098 unsafe extern "system" fn CreateNewsgroupNameEntryID<
8099 Identity: IExchangeManageStore3_Impl,
8100 const OFFSET: isize,
8101 >(
8102 this: *mut core::ffi::c_void,
8103 lpsznewsgroupname: windows_core::PCSTR,
8104 lpcbentryid: *mut u32,
8105 lppentryid: *mut *mut ENTRYID,
8106 ) -> windows_core::HRESULT {
8107 unsafe {
8108 let this: &Identity =
8109 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8110 IExchangeManageStore3_Impl::CreateNewsgroupNameEntryID(
8111 this,
8112 core::mem::transmute(&lpsznewsgroupname),
8113 core::mem::transmute_copy(&lpcbentryid),
8114 core::mem::transmute_copy(&lppentryid),
8115 )
8116 .into()
8117 }
8118 }
8119 unsafe extern "system" fn GetMailboxTableOffset<
8120 Identity: IExchangeManageStore3_Impl,
8121 const OFFSET: isize,
8122 >(
8123 this: *mut core::ffi::c_void,
8124 lpszservername: windows_core::PCSTR,
8125 lpptable: *mut *mut core::ffi::c_void,
8126 ulflags: u32,
8127 uoffset: u32,
8128 ) -> windows_core::HRESULT {
8129 unsafe {
8130 let this: &Identity =
8131 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8132 IExchangeManageStore3_Impl::GetMailboxTableOffset(
8133 this,
8134 core::mem::transmute(&lpszservername),
8135 core::mem::transmute_copy(&lpptable),
8136 core::mem::transmute_copy(&ulflags),
8137 core::mem::transmute_copy(&uoffset),
8138 )
8139 .into()
8140 }
8141 }
8142 Self {
8143 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8144 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
8145 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
8146 GetRights: GetRights::<Identity, OFFSET>,
8147 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
8148 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
8149 CreateNewsgroupNameEntryID: CreateNewsgroupNameEntryID::<Identity, OFFSET>,
8150 GetMailboxTableOffset: GetMailboxTableOffset::<Identity, OFFSET>,
8151 }
8152 }
8153 pub fn matches(iid: &windows_core::GUID) -> bool {
8154 iid == &<IExchangeManageStore3 as windows_core::Interface>::IID
8155 }
8156}
8157impl windows_core::RuntimeName for IExchangeManageStore3 {}
8158windows_core::imp::define_interface!(
8159 IExchangeManageStore4,
8160 IExchangeManageStore4_Vtbl,
8161 0x2590ff87_c431_4f9c_b1a8_cd69d760cd10
8162);
8163windows_core::imp::interface_hierarchy!(IExchangeManageStore4, windows_core::IUnknown);
8164impl IExchangeManageStore4 {
8165 pub unsafe fn CreateStoreEntryID<P0, P1>(
8166 &self,
8167 lpszmsgstoredn: P0,
8168 lpszmailboxdn: P1,
8169 ulflags: u32,
8170 lpcbentryid: *mut u32,
8171 lppentryid: *mut *mut ENTRYID,
8172 ) -> windows_core::Result<()>
8173 where
8174 P0: windows_core::Param<windows_core::PCSTR>,
8175 P1: windows_core::Param<windows_core::PCSTR>,
8176 {
8177 unsafe {
8178 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
8179 windows_core::Interface::as_raw(self),
8180 lpszmsgstoredn.param().abi(),
8181 lpszmailboxdn.param().abi(),
8182 ulflags,
8183 lpcbentryid as _,
8184 lppentryid as _,
8185 )
8186 .ok()
8187 }
8188 }
8189 pub unsafe fn EntryIDFromSourceKey(
8190 &self,
8191 cfolderkeysize: u32,
8192 lpfoldersourcekey: *mut u8,
8193 cmessagekeysize: u32,
8194 lpmessagesourcekey: *mut u8,
8195 lpcbentryid: *mut u32,
8196 lppentryid: *mut *mut ENTRYID,
8197 ) -> windows_core::Result<()> {
8198 unsafe {
8199 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
8200 windows_core::Interface::as_raw(self),
8201 cfolderkeysize,
8202 lpfoldersourcekey as _,
8203 cmessagekeysize,
8204 lpmessagesourcekey as _,
8205 lpcbentryid as _,
8206 lppentryid as _,
8207 )
8208 .ok()
8209 }
8210 }
8211 pub unsafe fn GetRights(
8212 &self,
8213 cbuserentryid: u32,
8214 lpuserentryid: *mut ENTRYID,
8215 cbentryid: u32,
8216 lpentryid: *mut ENTRYID,
8217 lpulrights: *mut u32,
8218 ) -> windows_core::Result<()> {
8219 unsafe {
8220 (windows_core::Interface::vtable(self).GetRights)(
8221 windows_core::Interface::as_raw(self),
8222 cbuserentryid,
8223 lpuserentryid as _,
8224 cbentryid,
8225 lpentryid as _,
8226 lpulrights as _,
8227 )
8228 .ok()
8229 }
8230 }
8231 pub unsafe fn GetMailboxTable<P0>(
8232 &self,
8233 lpszservername: P0,
8234 lpptable: *mut Option<IMAPITable>,
8235 ulflags: u32,
8236 ) -> windows_core::Result<()>
8237 where
8238 P0: windows_core::Param<windows_core::PCSTR>,
8239 {
8240 unsafe {
8241 (windows_core::Interface::vtable(self).GetMailboxTable)(
8242 windows_core::Interface::as_raw(self),
8243 lpszservername.param().abi(),
8244 core::mem::transmute(lpptable),
8245 ulflags,
8246 )
8247 .ok()
8248 }
8249 }
8250 pub unsafe fn GetPublicFolderTable<P0>(
8251 &self,
8252 lpszservername: P0,
8253 lpptable: *mut Option<IMAPITable>,
8254 ulflags: u32,
8255 ) -> windows_core::Result<()>
8256 where
8257 P0: windows_core::Param<windows_core::PCSTR>,
8258 {
8259 unsafe {
8260 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
8261 windows_core::Interface::as_raw(self),
8262 lpszservername.param().abi(),
8263 core::mem::transmute(lpptable),
8264 ulflags,
8265 )
8266 .ok()
8267 }
8268 }
8269 pub unsafe fn CreateNewsgroupNameEntryID<P0>(
8270 &self,
8271 lpsznewsgroupname: P0,
8272 lpcbentryid: *mut u32,
8273 lppentryid: *mut *mut ENTRYID,
8274 ) -> windows_core::Result<()>
8275 where
8276 P0: windows_core::Param<windows_core::PCSTR>,
8277 {
8278 unsafe {
8279 (windows_core::Interface::vtable(self).CreateNewsgroupNameEntryID)(
8280 windows_core::Interface::as_raw(self),
8281 lpsznewsgroupname.param().abi(),
8282 lpcbentryid as _,
8283 lppentryid as _,
8284 )
8285 .ok()
8286 }
8287 }
8288 pub unsafe fn GetMailboxTableOffset<P0>(
8289 &self,
8290 lpszservername: P0,
8291 lpptable: *mut Option<IMAPITable>,
8292 ulflags: u32,
8293 uoffset: u32,
8294 ) -> windows_core::Result<()>
8295 where
8296 P0: windows_core::Param<windows_core::PCSTR>,
8297 {
8298 unsafe {
8299 (windows_core::Interface::vtable(self).GetMailboxTableOffset)(
8300 windows_core::Interface::as_raw(self),
8301 lpszservername.param().abi(),
8302 core::mem::transmute(lpptable),
8303 ulflags,
8304 uoffset,
8305 )
8306 .ok()
8307 }
8308 }
8309 pub unsafe fn GetPublicFolderTableOffset<P0>(
8310 &self,
8311 lpszservername: P0,
8312 lpptable: *mut Option<IMAPITable>,
8313 ulflags: u32,
8314 uoffset: u32,
8315 ) -> windows_core::Result<()>
8316 where
8317 P0: windows_core::Param<windows_core::PCSTR>,
8318 {
8319 unsafe {
8320 (windows_core::Interface::vtable(self).GetPublicFolderTableOffset)(
8321 windows_core::Interface::as_raw(self),
8322 lpszservername.param().abi(),
8323 core::mem::transmute(lpptable),
8324 ulflags,
8325 uoffset,
8326 )
8327 .ok()
8328 }
8329 }
8330}
8331#[repr(C)]
8332pub struct IExchangeManageStore4_Vtbl {
8333 pub base__: windows_core::IUnknown_Vtbl,
8334 pub CreateStoreEntryID: unsafe extern "system" fn(
8335 *mut core::ffi::c_void,
8336 windows_core::PCSTR,
8337 windows_core::PCSTR,
8338 u32,
8339 *mut u32,
8340 *mut *mut ENTRYID,
8341 ) -> windows_core::HRESULT,
8342 pub EntryIDFromSourceKey: unsafe extern "system" fn(
8343 *mut core::ffi::c_void,
8344 u32,
8345 *mut u8,
8346 u32,
8347 *mut u8,
8348 *mut u32,
8349 *mut *mut ENTRYID,
8350 ) -> windows_core::HRESULT,
8351 pub GetRights: unsafe extern "system" fn(
8352 *mut core::ffi::c_void,
8353 u32,
8354 *mut ENTRYID,
8355 u32,
8356 *mut ENTRYID,
8357 *mut u32,
8358 ) -> windows_core::HRESULT,
8359 pub GetMailboxTable: unsafe extern "system" fn(
8360 *mut core::ffi::c_void,
8361 windows_core::PCSTR,
8362 *mut *mut core::ffi::c_void,
8363 u32,
8364 ) -> windows_core::HRESULT,
8365 pub GetPublicFolderTable: unsafe extern "system" fn(
8366 *mut core::ffi::c_void,
8367 windows_core::PCSTR,
8368 *mut *mut core::ffi::c_void,
8369 u32,
8370 ) -> windows_core::HRESULT,
8371 pub CreateNewsgroupNameEntryID: unsafe extern "system" fn(
8372 *mut core::ffi::c_void,
8373 windows_core::PCSTR,
8374 *mut u32,
8375 *mut *mut ENTRYID,
8376 ) -> windows_core::HRESULT,
8377 pub GetMailboxTableOffset: unsafe extern "system" fn(
8378 *mut core::ffi::c_void,
8379 windows_core::PCSTR,
8380 *mut *mut core::ffi::c_void,
8381 u32,
8382 u32,
8383 ) -> windows_core::HRESULT,
8384 pub GetPublicFolderTableOffset: unsafe extern "system" fn(
8385 *mut core::ffi::c_void,
8386 windows_core::PCSTR,
8387 *mut *mut core::ffi::c_void,
8388 u32,
8389 u32,
8390 ) -> windows_core::HRESULT,
8391}
8392pub trait IExchangeManageStore4_Impl: windows_core::IUnknownImpl {
8393 fn CreateStoreEntryID(
8394 &self,
8395 lpszmsgstoredn: &windows_core::PCSTR,
8396 lpszmailboxdn: &windows_core::PCSTR,
8397 ulflags: u32,
8398 lpcbentryid: *mut u32,
8399 lppentryid: *mut *mut ENTRYID,
8400 ) -> windows_core::Result<()>;
8401 fn EntryIDFromSourceKey(
8402 &self,
8403 cfolderkeysize: u32,
8404 lpfoldersourcekey: *mut u8,
8405 cmessagekeysize: u32,
8406 lpmessagesourcekey: *mut u8,
8407 lpcbentryid: *mut u32,
8408 lppentryid: *mut *mut ENTRYID,
8409 ) -> windows_core::Result<()>;
8410 fn GetRights(
8411 &self,
8412 cbuserentryid: u32,
8413 lpuserentryid: *mut ENTRYID,
8414 cbentryid: u32,
8415 lpentryid: *mut ENTRYID,
8416 lpulrights: *mut u32,
8417 ) -> windows_core::Result<()>;
8418 fn GetMailboxTable(
8419 &self,
8420 lpszservername: &windows_core::PCSTR,
8421 lpptable: windows_core::OutRef<'_, IMAPITable>,
8422 ulflags: u32,
8423 ) -> windows_core::Result<()>;
8424 fn GetPublicFolderTable(
8425 &self,
8426 lpszservername: &windows_core::PCSTR,
8427 lpptable: windows_core::OutRef<'_, IMAPITable>,
8428 ulflags: u32,
8429 ) -> windows_core::Result<()>;
8430 fn CreateNewsgroupNameEntryID(
8431 &self,
8432 lpsznewsgroupname: &windows_core::PCSTR,
8433 lpcbentryid: *mut u32,
8434 lppentryid: *mut *mut ENTRYID,
8435 ) -> windows_core::Result<()>;
8436 fn GetMailboxTableOffset(
8437 &self,
8438 lpszservername: &windows_core::PCSTR,
8439 lpptable: windows_core::OutRef<'_, IMAPITable>,
8440 ulflags: u32,
8441 uoffset: u32,
8442 ) -> windows_core::Result<()>;
8443 fn GetPublicFolderTableOffset(
8444 &self,
8445 lpszservername: &windows_core::PCSTR,
8446 lpptable: windows_core::OutRef<'_, IMAPITable>,
8447 ulflags: u32,
8448 uoffset: u32,
8449 ) -> windows_core::Result<()>;
8450}
8451impl IExchangeManageStore4_Vtbl {
8452 pub const fn new<Identity: IExchangeManageStore4_Impl, const OFFSET: isize>() -> Self {
8453 unsafe extern "system" fn CreateStoreEntryID<
8454 Identity: IExchangeManageStore4_Impl,
8455 const OFFSET: isize,
8456 >(
8457 this: *mut core::ffi::c_void,
8458 lpszmsgstoredn: windows_core::PCSTR,
8459 lpszmailboxdn: windows_core::PCSTR,
8460 ulflags: u32,
8461 lpcbentryid: *mut u32,
8462 lppentryid: *mut *mut ENTRYID,
8463 ) -> windows_core::HRESULT {
8464 unsafe {
8465 let this: &Identity =
8466 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8467 IExchangeManageStore4_Impl::CreateStoreEntryID(
8468 this,
8469 core::mem::transmute(&lpszmsgstoredn),
8470 core::mem::transmute(&lpszmailboxdn),
8471 core::mem::transmute_copy(&ulflags),
8472 core::mem::transmute_copy(&lpcbentryid),
8473 core::mem::transmute_copy(&lppentryid),
8474 )
8475 .into()
8476 }
8477 }
8478 unsafe extern "system" fn EntryIDFromSourceKey<
8479 Identity: IExchangeManageStore4_Impl,
8480 const OFFSET: isize,
8481 >(
8482 this: *mut core::ffi::c_void,
8483 cfolderkeysize: u32,
8484 lpfoldersourcekey: *mut u8,
8485 cmessagekeysize: u32,
8486 lpmessagesourcekey: *mut u8,
8487 lpcbentryid: *mut u32,
8488 lppentryid: *mut *mut ENTRYID,
8489 ) -> windows_core::HRESULT {
8490 unsafe {
8491 let this: &Identity =
8492 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8493 IExchangeManageStore4_Impl::EntryIDFromSourceKey(
8494 this,
8495 core::mem::transmute_copy(&cfolderkeysize),
8496 core::mem::transmute_copy(&lpfoldersourcekey),
8497 core::mem::transmute_copy(&cmessagekeysize),
8498 core::mem::transmute_copy(&lpmessagesourcekey),
8499 core::mem::transmute_copy(&lpcbentryid),
8500 core::mem::transmute_copy(&lppentryid),
8501 )
8502 .into()
8503 }
8504 }
8505 unsafe extern "system" fn GetRights<
8506 Identity: IExchangeManageStore4_Impl,
8507 const OFFSET: isize,
8508 >(
8509 this: *mut core::ffi::c_void,
8510 cbuserentryid: u32,
8511 lpuserentryid: *mut ENTRYID,
8512 cbentryid: u32,
8513 lpentryid: *mut ENTRYID,
8514 lpulrights: *mut u32,
8515 ) -> windows_core::HRESULT {
8516 unsafe {
8517 let this: &Identity =
8518 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8519 IExchangeManageStore4_Impl::GetRights(
8520 this,
8521 core::mem::transmute_copy(&cbuserentryid),
8522 core::mem::transmute_copy(&lpuserentryid),
8523 core::mem::transmute_copy(&cbentryid),
8524 core::mem::transmute_copy(&lpentryid),
8525 core::mem::transmute_copy(&lpulrights),
8526 )
8527 .into()
8528 }
8529 }
8530 unsafe extern "system" fn GetMailboxTable<
8531 Identity: IExchangeManageStore4_Impl,
8532 const OFFSET: isize,
8533 >(
8534 this: *mut core::ffi::c_void,
8535 lpszservername: windows_core::PCSTR,
8536 lpptable: *mut *mut core::ffi::c_void,
8537 ulflags: u32,
8538 ) -> windows_core::HRESULT {
8539 unsafe {
8540 let this: &Identity =
8541 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8542 IExchangeManageStore4_Impl::GetMailboxTable(
8543 this,
8544 core::mem::transmute(&lpszservername),
8545 core::mem::transmute_copy(&lpptable),
8546 core::mem::transmute_copy(&ulflags),
8547 )
8548 .into()
8549 }
8550 }
8551 unsafe extern "system" fn GetPublicFolderTable<
8552 Identity: IExchangeManageStore4_Impl,
8553 const OFFSET: isize,
8554 >(
8555 this: *mut core::ffi::c_void,
8556 lpszservername: windows_core::PCSTR,
8557 lpptable: *mut *mut core::ffi::c_void,
8558 ulflags: u32,
8559 ) -> windows_core::HRESULT {
8560 unsafe {
8561 let this: &Identity =
8562 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8563 IExchangeManageStore4_Impl::GetPublicFolderTable(
8564 this,
8565 core::mem::transmute(&lpszservername),
8566 core::mem::transmute_copy(&lpptable),
8567 core::mem::transmute_copy(&ulflags),
8568 )
8569 .into()
8570 }
8571 }
8572 unsafe extern "system" fn CreateNewsgroupNameEntryID<
8573 Identity: IExchangeManageStore4_Impl,
8574 const OFFSET: isize,
8575 >(
8576 this: *mut core::ffi::c_void,
8577 lpsznewsgroupname: windows_core::PCSTR,
8578 lpcbentryid: *mut u32,
8579 lppentryid: *mut *mut ENTRYID,
8580 ) -> windows_core::HRESULT {
8581 unsafe {
8582 let this: &Identity =
8583 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8584 IExchangeManageStore4_Impl::CreateNewsgroupNameEntryID(
8585 this,
8586 core::mem::transmute(&lpsznewsgroupname),
8587 core::mem::transmute_copy(&lpcbentryid),
8588 core::mem::transmute_copy(&lppentryid),
8589 )
8590 .into()
8591 }
8592 }
8593 unsafe extern "system" fn GetMailboxTableOffset<
8594 Identity: IExchangeManageStore4_Impl,
8595 const OFFSET: isize,
8596 >(
8597 this: *mut core::ffi::c_void,
8598 lpszservername: windows_core::PCSTR,
8599 lpptable: *mut *mut core::ffi::c_void,
8600 ulflags: u32,
8601 uoffset: u32,
8602 ) -> windows_core::HRESULT {
8603 unsafe {
8604 let this: &Identity =
8605 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8606 IExchangeManageStore4_Impl::GetMailboxTableOffset(
8607 this,
8608 core::mem::transmute(&lpszservername),
8609 core::mem::transmute_copy(&lpptable),
8610 core::mem::transmute_copy(&ulflags),
8611 core::mem::transmute_copy(&uoffset),
8612 )
8613 .into()
8614 }
8615 }
8616 unsafe extern "system" fn GetPublicFolderTableOffset<
8617 Identity: IExchangeManageStore4_Impl,
8618 const OFFSET: isize,
8619 >(
8620 this: *mut core::ffi::c_void,
8621 lpszservername: windows_core::PCSTR,
8622 lpptable: *mut *mut core::ffi::c_void,
8623 ulflags: u32,
8624 uoffset: u32,
8625 ) -> windows_core::HRESULT {
8626 unsafe {
8627 let this: &Identity =
8628 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8629 IExchangeManageStore4_Impl::GetPublicFolderTableOffset(
8630 this,
8631 core::mem::transmute(&lpszservername),
8632 core::mem::transmute_copy(&lpptable),
8633 core::mem::transmute_copy(&ulflags),
8634 core::mem::transmute_copy(&uoffset),
8635 )
8636 .into()
8637 }
8638 }
8639 Self {
8640 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8641 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
8642 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
8643 GetRights: GetRights::<Identity, OFFSET>,
8644 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
8645 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
8646 CreateNewsgroupNameEntryID: CreateNewsgroupNameEntryID::<Identity, OFFSET>,
8647 GetMailboxTableOffset: GetMailboxTableOffset::<Identity, OFFSET>,
8648 GetPublicFolderTableOffset: GetPublicFolderTableOffset::<Identity, OFFSET>,
8649 }
8650 }
8651 pub fn matches(iid: &windows_core::GUID) -> bool {
8652 iid == &<IExchangeManageStore4 as windows_core::Interface>::IID
8653 }
8654}
8655impl windows_core::RuntimeName for IExchangeManageStore4 {}
8656windows_core::imp::define_interface!(
8657 IExchangeMessageConversion,
8658 IExchangeMessageConversion_Vtbl,
8659 0x3532b360_d114_11cf_a83b_00c04fd65597
8660);
8661windows_core::imp::interface_hierarchy!(IExchangeMessageConversion, windows_core::IUnknown);
8662impl IExchangeMessageConversion {
8663 pub unsafe fn OpenStream(
8664 &self,
8665 cvalues: u32,
8666 lpproparray: *mut SPropValue,
8667 lppstream: *mut Option<windows::Win32::System::Com::IStream>,
8668 ) -> windows_core::Result<()> {
8669 unsafe {
8670 (windows_core::Interface::vtable(self).OpenStream)(
8671 windows_core::Interface::as_raw(self),
8672 cvalues,
8673 lpproparray as _,
8674 core::mem::transmute(lppstream),
8675 )
8676 .ok()
8677 }
8678 }
8679}
8680#[repr(C)]
8681pub struct IExchangeMessageConversion_Vtbl {
8682 pub base__: windows_core::IUnknown_Vtbl,
8683 pub OpenStream: unsafe extern "system" fn(
8684 *mut core::ffi::c_void,
8685 u32,
8686 *mut SPropValue,
8687 *mut *mut core::ffi::c_void,
8688 ) -> windows_core::HRESULT,
8689}
8690pub trait IExchangeMessageConversion_Impl: windows_core::IUnknownImpl {
8691 fn OpenStream(
8692 &self,
8693 cvalues: u32,
8694 lpproparray: *mut SPropValue,
8695 lppstream: windows_core::OutRef<'_, windows::Win32::System::Com::IStream>,
8696 ) -> windows_core::Result<()>;
8697}
8698impl IExchangeMessageConversion_Vtbl {
8699 pub const fn new<Identity: IExchangeMessageConversion_Impl, const OFFSET: isize>() -> Self {
8700 unsafe extern "system" fn OpenStream<
8701 Identity: IExchangeMessageConversion_Impl,
8702 const OFFSET: isize,
8703 >(
8704 this: *mut core::ffi::c_void,
8705 cvalues: u32,
8706 lpproparray: *mut SPropValue,
8707 lppstream: *mut *mut core::ffi::c_void,
8708 ) -> windows_core::HRESULT {
8709 unsafe {
8710 let this: &Identity =
8711 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8712 IExchangeMessageConversion_Impl::OpenStream(
8713 this,
8714 core::mem::transmute_copy(&cvalues),
8715 core::mem::transmute_copy(&lpproparray),
8716 core::mem::transmute_copy(&lppstream),
8717 )
8718 .into()
8719 }
8720 }
8721 Self {
8722 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8723 OpenStream: OpenStream::<Identity, OFFSET>,
8724 }
8725 }
8726 pub fn matches(iid: &windows_core::GUID) -> bool {
8727 iid == &<IExchangeMessageConversion as windows_core::Interface>::IID
8728 }
8729}
8730impl windows_core::RuntimeName for IExchangeMessageConversion {}
8731windows_core::imp::define_interface!(
8732 IExchangeModifyTable,
8733 IExchangeModifyTable_Vtbl,
8734 0x2d734cb0_53fd_101b_b19d_08002b3056e3
8735);
8736windows_core::imp::interface_hierarchy!(IExchangeModifyTable, windows_core::IUnknown);
8737impl IExchangeModifyTable {
8738 pub unsafe fn GetLastError(
8739 &self,
8740 hresult: windows_core::HRESULT,
8741 ulflags: u32,
8742 lppmapierror: *mut *mut MAPIERROR,
8743 ) -> windows_core::Result<()> {
8744 unsafe {
8745 (windows_core::Interface::vtable(self).GetLastError)(
8746 windows_core::Interface::as_raw(self),
8747 hresult,
8748 ulflags,
8749 lppmapierror as _,
8750 )
8751 .ok()
8752 }
8753 }
8754 pub unsafe fn GetTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
8755 unsafe {
8756 let mut result__ = core::mem::zeroed();
8757 (windows_core::Interface::vtable(self).GetTable)(
8758 windows_core::Interface::as_raw(self),
8759 ulflags,
8760 &mut result__,
8761 )
8762 .and_then(|| windows_core::Type::from_abi(result__))
8763 }
8764 }
8765 pub unsafe fn ModifyTable(
8766 &self,
8767 ulflags: u32,
8768 lpmods: *mut ROWLIST,
8769 ) -> windows_core::Result<()> {
8770 unsafe {
8771 (windows_core::Interface::vtable(self).ModifyTable)(
8772 windows_core::Interface::as_raw(self),
8773 ulflags,
8774 lpmods as _,
8775 )
8776 .ok()
8777 }
8778 }
8779}
8780#[repr(C)]
8781pub struct IExchangeModifyTable_Vtbl {
8782 pub base__: windows_core::IUnknown_Vtbl,
8783 pub GetLastError: unsafe extern "system" fn(
8784 *mut core::ffi::c_void,
8785 windows_core::HRESULT,
8786 u32,
8787 *mut *mut MAPIERROR,
8788 ) -> windows_core::HRESULT,
8789 pub GetTable: unsafe extern "system" fn(
8790 *mut core::ffi::c_void,
8791 u32,
8792 *mut *mut core::ffi::c_void,
8793 ) -> windows_core::HRESULT,
8794 pub ModifyTable: unsafe extern "system" fn(
8795 *mut core::ffi::c_void,
8796 u32,
8797 *mut ROWLIST,
8798 ) -> windows_core::HRESULT,
8799}
8800pub trait IExchangeModifyTable_Impl: windows_core::IUnknownImpl {
8801 fn GetLastError(
8802 &self,
8803 hresult: windows_core::HRESULT,
8804 ulflags: u32,
8805 lppmapierror: *mut *mut MAPIERROR,
8806 ) -> windows_core::Result<()>;
8807 fn GetTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
8808 fn ModifyTable(&self, ulflags: u32, lpmods: *mut ROWLIST) -> windows_core::Result<()>;
8809}
8810impl IExchangeModifyTable_Vtbl {
8811 pub const fn new<Identity: IExchangeModifyTable_Impl, const OFFSET: isize>() -> Self {
8812 unsafe extern "system" fn GetLastError<
8813 Identity: IExchangeModifyTable_Impl,
8814 const OFFSET: isize,
8815 >(
8816 this: *mut core::ffi::c_void,
8817 hresult: windows_core::HRESULT,
8818 ulflags: u32,
8819 lppmapierror: *mut *mut MAPIERROR,
8820 ) -> windows_core::HRESULT {
8821 unsafe {
8822 let this: &Identity =
8823 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8824 IExchangeModifyTable_Impl::GetLastError(
8825 this,
8826 core::mem::transmute_copy(&hresult),
8827 core::mem::transmute_copy(&ulflags),
8828 core::mem::transmute_copy(&lppmapierror),
8829 )
8830 .into()
8831 }
8832 }
8833 unsafe extern "system" fn GetTable<
8834 Identity: IExchangeModifyTable_Impl,
8835 const OFFSET: isize,
8836 >(
8837 this: *mut core::ffi::c_void,
8838 ulflags: u32,
8839 lpptable: *mut *mut core::ffi::c_void,
8840 ) -> windows_core::HRESULT {
8841 unsafe {
8842 let this: &Identity =
8843 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8844 match IExchangeModifyTable_Impl::GetTable(this, core::mem::transmute_copy(&ulflags))
8845 {
8846 Ok(ok__) => {
8847 lpptable.write(core::mem::transmute(ok__));
8848 windows_core::HRESULT(0)
8849 }
8850 Err(err) => err.into(),
8851 }
8852 }
8853 }
8854 unsafe extern "system" fn ModifyTable<
8855 Identity: IExchangeModifyTable_Impl,
8856 const OFFSET: isize,
8857 >(
8858 this: *mut core::ffi::c_void,
8859 ulflags: u32,
8860 lpmods: *mut ROWLIST,
8861 ) -> windows_core::HRESULT {
8862 unsafe {
8863 let this: &Identity =
8864 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8865 IExchangeModifyTable_Impl::ModifyTable(
8866 this,
8867 core::mem::transmute_copy(&ulflags),
8868 core::mem::transmute_copy(&lpmods),
8869 )
8870 .into()
8871 }
8872 }
8873 Self {
8874 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8875 GetLastError: GetLastError::<Identity, OFFSET>,
8876 GetTable: GetTable::<Identity, OFFSET>,
8877 ModifyTable: ModifyTable::<Identity, OFFSET>,
8878 }
8879 }
8880 pub fn matches(iid: &windows_core::GUID) -> bool {
8881 iid == &<IExchangeModifyTable as windows_core::Interface>::IID
8882 }
8883}
8884impl windows_core::RuntimeName for IExchangeModifyTable {}
8885windows_core::imp::define_interface!(
8886 IExchangeMoveUserProgress,
8887 IExchangeMoveUserProgress_Vtbl,
8888 0xef2fb44a_8dac_4e4e_b1e3_a3b926355617
8889);
8890windows_core::imp::interface_hierarchy!(IExchangeMoveUserProgress, windows_core::IUnknown);
8891impl IExchangeMoveUserProgress {
8892 pub unsafe fn NextFolder<P1>(
8893 &self,
8894 ulflags: u32,
8895 lpwszfoldername: P1,
8896 ) -> windows_core::Result<()>
8897 where
8898 P1: windows_core::Param<windows_core::PCWSTR>,
8899 {
8900 unsafe {
8901 (windows_core::Interface::vtable(self).NextFolder)(
8902 windows_core::Interface::as_raw(self),
8903 ulflags,
8904 lpwszfoldername.param().abi(),
8905 )
8906 .ok()
8907 }
8908 }
8909 pub unsafe fn Progress(
8910 &self,
8911 ulflags: u32,
8912 ulcount: u32,
8913 ultotal: u32,
8914 ) -> windows_core::Result<()> {
8915 unsafe {
8916 (windows_core::Interface::vtable(self).Progress)(
8917 windows_core::Interface::as_raw(self),
8918 ulflags,
8919 ulcount,
8920 ultotal,
8921 )
8922 .ok()
8923 }
8924 }
8925 pub unsafe fn Restart(&self, ulflags: u32) -> windows_core::Result<()> {
8926 unsafe {
8927 (windows_core::Interface::vtable(self).Restart)(
8928 windows_core::Interface::as_raw(self),
8929 ulflags,
8930 )
8931 .ok()
8932 }
8933 }
8934}
8935#[repr(C)]
8936pub struct IExchangeMoveUserProgress_Vtbl {
8937 pub base__: windows_core::IUnknown_Vtbl,
8938 pub NextFolder: unsafe extern "system" fn(
8939 *mut core::ffi::c_void,
8940 u32,
8941 windows_core::PCWSTR,
8942 ) -> windows_core::HRESULT,
8943 pub Progress:
8944 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
8945 pub Restart: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
8946}
8947pub trait IExchangeMoveUserProgress_Impl: windows_core::IUnknownImpl {
8948 fn NextFolder(
8949 &self,
8950 ulflags: u32,
8951 lpwszfoldername: &windows_core::PCWSTR,
8952 ) -> windows_core::Result<()>;
8953 fn Progress(&self, ulflags: u32, ulcount: u32, ultotal: u32) -> windows_core::Result<()>;
8954 fn Restart(&self, ulflags: u32) -> windows_core::Result<()>;
8955}
8956impl IExchangeMoveUserProgress_Vtbl {
8957 pub const fn new<Identity: IExchangeMoveUserProgress_Impl, const OFFSET: isize>() -> Self {
8958 unsafe extern "system" fn NextFolder<
8959 Identity: IExchangeMoveUserProgress_Impl,
8960 const OFFSET: isize,
8961 >(
8962 this: *mut core::ffi::c_void,
8963 ulflags: u32,
8964 lpwszfoldername: windows_core::PCWSTR,
8965 ) -> windows_core::HRESULT {
8966 unsafe {
8967 let this: &Identity =
8968 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8969 IExchangeMoveUserProgress_Impl::NextFolder(
8970 this,
8971 core::mem::transmute_copy(&ulflags),
8972 core::mem::transmute(&lpwszfoldername),
8973 )
8974 .into()
8975 }
8976 }
8977 unsafe extern "system" fn Progress<
8978 Identity: IExchangeMoveUserProgress_Impl,
8979 const OFFSET: isize,
8980 >(
8981 this: *mut core::ffi::c_void,
8982 ulflags: u32,
8983 ulcount: u32,
8984 ultotal: u32,
8985 ) -> windows_core::HRESULT {
8986 unsafe {
8987 let this: &Identity =
8988 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8989 IExchangeMoveUserProgress_Impl::Progress(
8990 this,
8991 core::mem::transmute_copy(&ulflags),
8992 core::mem::transmute_copy(&ulcount),
8993 core::mem::transmute_copy(&ultotal),
8994 )
8995 .into()
8996 }
8997 }
8998 unsafe extern "system" fn Restart<
8999 Identity: IExchangeMoveUserProgress_Impl,
9000 const OFFSET: isize,
9001 >(
9002 this: *mut core::ffi::c_void,
9003 ulflags: u32,
9004 ) -> windows_core::HRESULT {
9005 unsafe {
9006 let this: &Identity =
9007 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9008 IExchangeMoveUserProgress_Impl::Restart(this, core::mem::transmute_copy(&ulflags))
9009 .into()
9010 }
9011 }
9012 Self {
9013 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9014 NextFolder: NextFolder::<Identity, OFFSET>,
9015 Progress: Progress::<Identity, OFFSET>,
9016 Restart: Restart::<Identity, OFFSET>,
9017 }
9018 }
9019 pub fn matches(iid: &windows_core::GUID) -> bool {
9020 iid == &<IExchangeMoveUserProgress as windows_core::Interface>::IID
9021 }
9022}
9023impl windows_core::RuntimeName for IExchangeMoveUserProgress {}
9024windows_core::imp::define_interface!(
9025 IExchangeNntpNewsfeed,
9026 IExchangeNntpNewsfeed_Vtbl,
9027 0x380f41c0_3cdc_11d0_9792_00c04fd6551d
9028);
9029windows_core::imp::interface_hierarchy!(IExchangeNntpNewsfeed, windows_core::IUnknown);
9030impl IExchangeNntpNewsfeed {
9031 pub unsafe fn Configure<P0>(
9032 &self,
9033 lpsznewsfeeddn: P0,
9034 cvalues: u32,
9035 lpimailproparray: *mut SPropValue,
9036 ) -> windows_core::Result<()>
9037 where
9038 P0: windows_core::Param<windows_core::PCSTR>,
9039 {
9040 unsafe {
9041 (windows_core::Interface::vtable(self).Configure)(
9042 windows_core::Interface::as_raw(self),
9043 lpsznewsfeeddn.param().abi(),
9044 cvalues,
9045 lpimailproparray as _,
9046 )
9047 .ok()
9048 }
9049 }
9050 pub unsafe fn CheckMsgIds<P0>(
9051 &self,
9052 lpszmsgids: P0,
9053 lpcfwanted: *mut u32,
9054 lppfwanted: *mut *mut u8,
9055 ) -> windows_core::Result<()>
9056 where
9057 P0: windows_core::Param<windows_core::PCSTR>,
9058 {
9059 unsafe {
9060 (windows_core::Interface::vtable(self).CheckMsgIds)(
9061 windows_core::Interface::as_raw(self),
9062 lpszmsgids.param().abi(),
9063 lpcfwanted as _,
9064 lppfwanted as _,
9065 )
9066 .ok()
9067 }
9068 }
9069 pub unsafe fn OpenArticleStream(
9070 &self,
9071 ) -> windows_core::Result<windows::Win32::System::Com::IStream> {
9072 unsafe {
9073 let mut result__ = core::mem::zeroed();
9074 (windows_core::Interface::vtable(self).OpenArticleStream)(
9075 windows_core::Interface::as_raw(self),
9076 &mut result__,
9077 )
9078 .and_then(|| windows_core::Type::from_abi(result__))
9079 }
9080 }
9081}
9082#[repr(C)]
9083pub struct IExchangeNntpNewsfeed_Vtbl {
9084 pub base__: windows_core::IUnknown_Vtbl,
9085 pub Configure: unsafe extern "system" fn(
9086 *mut core::ffi::c_void,
9087 windows_core::PCSTR,
9088 u32,
9089 *mut SPropValue,
9090 ) -> windows_core::HRESULT,
9091 pub CheckMsgIds: unsafe extern "system" fn(
9092 *mut core::ffi::c_void,
9093 windows_core::PCSTR,
9094 *mut u32,
9095 *mut *mut u8,
9096 ) -> windows_core::HRESULT,
9097 pub OpenArticleStream: unsafe extern "system" fn(
9098 *mut core::ffi::c_void,
9099 *mut *mut core::ffi::c_void,
9100 ) -> windows_core::HRESULT,
9101}
9102pub trait IExchangeNntpNewsfeed_Impl: windows_core::IUnknownImpl {
9103 fn Configure(
9104 &self,
9105 lpsznewsfeeddn: &windows_core::PCSTR,
9106 cvalues: u32,
9107 lpimailproparray: *mut SPropValue,
9108 ) -> windows_core::Result<()>;
9109 fn CheckMsgIds(
9110 &self,
9111 lpszmsgids: &windows_core::PCSTR,
9112 lpcfwanted: *mut u32,
9113 lppfwanted: *mut *mut u8,
9114 ) -> windows_core::Result<()>;
9115 fn OpenArticleStream(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
9116}
9117impl IExchangeNntpNewsfeed_Vtbl {
9118 pub const fn new<Identity: IExchangeNntpNewsfeed_Impl, const OFFSET: isize>() -> Self {
9119 unsafe extern "system" fn Configure<
9120 Identity: IExchangeNntpNewsfeed_Impl,
9121 const OFFSET: isize,
9122 >(
9123 this: *mut core::ffi::c_void,
9124 lpsznewsfeeddn: windows_core::PCSTR,
9125 cvalues: u32,
9126 lpimailproparray: *mut SPropValue,
9127 ) -> windows_core::HRESULT {
9128 unsafe {
9129 let this: &Identity =
9130 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9131 IExchangeNntpNewsfeed_Impl::Configure(
9132 this,
9133 core::mem::transmute(&lpsznewsfeeddn),
9134 core::mem::transmute_copy(&cvalues),
9135 core::mem::transmute_copy(&lpimailproparray),
9136 )
9137 .into()
9138 }
9139 }
9140 unsafe extern "system" fn CheckMsgIds<
9141 Identity: IExchangeNntpNewsfeed_Impl,
9142 const OFFSET: isize,
9143 >(
9144 this: *mut core::ffi::c_void,
9145 lpszmsgids: windows_core::PCSTR,
9146 lpcfwanted: *mut u32,
9147 lppfwanted: *mut *mut u8,
9148 ) -> windows_core::HRESULT {
9149 unsafe {
9150 let this: &Identity =
9151 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9152 IExchangeNntpNewsfeed_Impl::CheckMsgIds(
9153 this,
9154 core::mem::transmute(&lpszmsgids),
9155 core::mem::transmute_copy(&lpcfwanted),
9156 core::mem::transmute_copy(&lppfwanted),
9157 )
9158 .into()
9159 }
9160 }
9161 unsafe extern "system" fn OpenArticleStream<
9162 Identity: IExchangeNntpNewsfeed_Impl,
9163 const OFFSET: isize,
9164 >(
9165 this: *mut core::ffi::c_void,
9166 lppstream: *mut *mut core::ffi::c_void,
9167 ) -> windows_core::HRESULT {
9168 unsafe {
9169 let this: &Identity =
9170 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9171 match IExchangeNntpNewsfeed_Impl::OpenArticleStream(this) {
9172 Ok(ok__) => {
9173 lppstream.write(core::mem::transmute(ok__));
9174 windows_core::HRESULT(0)
9175 }
9176 Err(err) => err.into(),
9177 }
9178 }
9179 }
9180 Self {
9181 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9182 Configure: Configure::<Identity, OFFSET>,
9183 CheckMsgIds: CheckMsgIds::<Identity, OFFSET>,
9184 OpenArticleStream: OpenArticleStream::<Identity, OFFSET>,
9185 }
9186 }
9187 pub fn matches(iid: &windows_core::GUID) -> bool {
9188 iid == &<IExchangeNntpNewsfeed as windows_core::Interface>::IID
9189 }
9190}
9191impl windows_core::RuntimeName for IExchangeNntpNewsfeed {}
9192windows_core::imp::define_interface!(
9193 IExchangeRuleAction,
9194 IExchangeRuleAction_Vtbl,
9195 0x74bba840_c93a_11ce_9581_00aa005742f7
9196);
9197windows_core::imp::interface_hierarchy!(IExchangeRuleAction, windows_core::IUnknown);
9198impl IExchangeRuleAction {
9199 pub unsafe fn ActionCount(&self, lpcactions: *mut u32) -> windows_core::Result<()> {
9200 unsafe {
9201 (windows_core::Interface::vtable(self).ActionCount)(
9202 windows_core::Interface::as_raw(self),
9203 lpcactions as _,
9204 )
9205 .ok()
9206 }
9207 }
9208 pub unsafe fn GetAction(
9209 &self,
9210 ulactionnumber: u32,
9211 lpruleid: *mut i64,
9212 lppaction: *mut *mut ACTION,
9213 ) -> windows_core::Result<()> {
9214 unsafe {
9215 (windows_core::Interface::vtable(self).GetAction)(
9216 windows_core::Interface::as_raw(self),
9217 ulactionnumber,
9218 lpruleid as _,
9219 lppaction as _,
9220 )
9221 .ok()
9222 }
9223 }
9224}
9225#[repr(C)]
9226pub struct IExchangeRuleAction_Vtbl {
9227 pub base__: windows_core::IUnknown_Vtbl,
9228 pub ActionCount:
9229 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
9230 pub GetAction: unsafe extern "system" fn(
9231 *mut core::ffi::c_void,
9232 u32,
9233 *mut i64,
9234 *mut *mut ACTION,
9235 ) -> windows_core::HRESULT,
9236}
9237pub trait IExchangeRuleAction_Impl: windows_core::IUnknownImpl {
9238 fn ActionCount(&self, lpcactions: *mut u32) -> windows_core::Result<()>;
9239 fn GetAction(
9240 &self,
9241 ulactionnumber: u32,
9242 lpruleid: *mut i64,
9243 lppaction: *mut *mut ACTION,
9244 ) -> windows_core::Result<()>;
9245}
9246impl IExchangeRuleAction_Vtbl {
9247 pub const fn new<Identity: IExchangeRuleAction_Impl, const OFFSET: isize>() -> Self {
9248 unsafe extern "system" fn ActionCount<
9249 Identity: IExchangeRuleAction_Impl,
9250 const OFFSET: isize,
9251 >(
9252 this: *mut core::ffi::c_void,
9253 lpcactions: *mut u32,
9254 ) -> windows_core::HRESULT {
9255 unsafe {
9256 let this: &Identity =
9257 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9258 IExchangeRuleAction_Impl::ActionCount(this, core::mem::transmute_copy(&lpcactions))
9259 .into()
9260 }
9261 }
9262 unsafe extern "system" fn GetAction<
9263 Identity: IExchangeRuleAction_Impl,
9264 const OFFSET: isize,
9265 >(
9266 this: *mut core::ffi::c_void,
9267 ulactionnumber: u32,
9268 lpruleid: *mut i64,
9269 lppaction: *mut *mut ACTION,
9270 ) -> windows_core::HRESULT {
9271 unsafe {
9272 let this: &Identity =
9273 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9274 IExchangeRuleAction_Impl::GetAction(
9275 this,
9276 core::mem::transmute_copy(&ulactionnumber),
9277 core::mem::transmute_copy(&lpruleid),
9278 core::mem::transmute_copy(&lppaction),
9279 )
9280 .into()
9281 }
9282 }
9283 Self {
9284 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9285 ActionCount: ActionCount::<Identity, OFFSET>,
9286 GetAction: GetAction::<Identity, OFFSET>,
9287 }
9288 }
9289 pub fn matches(iid: &windows_core::GUID) -> bool {
9290 iid == &<IExchangeRuleAction as windows_core::Interface>::IID
9291 }
9292}
9293impl windows_core::RuntimeName for IExchangeRuleAction {}
9294windows_core::imp::define_interface!(
9295 IFontCache,
9296 IFontCache_Vtbl,
9297 0xb0d17fc2_7bc4_11d1_bdfa_00c04fa31009
9298);
9299windows_core::imp::interface_hierarchy!(IFontCache, windows_core::IUnknown);
9300impl IFontCache {
9301 pub unsafe fn Init<P1>(
9302 &self,
9303 hkey: windows::Win32::System::Registry::HKEY,
9304 pszintlkey: P1,
9305 dwflags: u32,
9306 ) -> windows_core::Result<()>
9307 where
9308 P1: windows_core::Param<windows_core::PCSTR>,
9309 {
9310 unsafe {
9311 (windows_core::Interface::vtable(self).Init)(
9312 windows_core::Interface::as_raw(self),
9313 hkey,
9314 pszintlkey.param().abi(),
9315 dwflags,
9316 )
9317 .ok()
9318 }
9319 }
9320 pub unsafe fn GetFont(
9321 &self,
9322 fnttype: FNTSYSTYPE,
9323 hcharset: *mut HCHARSET__,
9324 phfont: *mut windows::Win32::Graphics::Gdi::HFONT,
9325 ) -> windows_core::Result<()> {
9326 unsafe {
9327 (windows_core::Interface::vtable(self).GetFont)(
9328 windows_core::Interface::as_raw(self),
9329 fnttype,
9330 hcharset as _,
9331 phfont as _,
9332 )
9333 .ok()
9334 }
9335 }
9336 pub unsafe fn OnOptionChange(&self) -> windows_core::Result<()> {
9337 unsafe {
9338 (windows_core::Interface::vtable(self).OnOptionChange)(windows_core::Interface::as_raw(
9339 self,
9340 ))
9341 .ok()
9342 }
9343 }
9344 pub unsafe fn GetJP_ISOControl(
9345 &self,
9346 pfusesio: *mut windows_core::BOOL,
9347 ) -> windows_core::Result<()> {
9348 unsafe {
9349 (windows_core::Interface::vtable(self).GetJP_ISOControl)(
9350 windows_core::Interface::as_raw(self),
9351 pfusesio as _,
9352 )
9353 .ok()
9354 }
9355 }
9356}
9357#[repr(C)]
9358pub struct IFontCache_Vtbl {
9359 pub base__: windows_core::IUnknown_Vtbl,
9360 pub Init: unsafe extern "system" fn(
9361 *mut core::ffi::c_void,
9362 windows::Win32::System::Registry::HKEY,
9363 windows_core::PCSTR,
9364 u32,
9365 ) -> windows_core::HRESULT,
9366 pub GetFont: unsafe extern "system" fn(
9367 *mut core::ffi::c_void,
9368 FNTSYSTYPE,
9369 *mut HCHARSET__,
9370 *mut windows::Win32::Graphics::Gdi::HFONT,
9371 ) -> windows_core::HRESULT,
9372 pub OnOptionChange: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9373 pub GetJP_ISOControl: unsafe extern "system" fn(
9374 *mut core::ffi::c_void,
9375 *mut windows_core::BOOL,
9376 ) -> windows_core::HRESULT,
9377}
9378pub trait IFontCache_Impl: windows_core::IUnknownImpl {
9379 fn Init(
9380 &self,
9381 hkey: windows::Win32::System::Registry::HKEY,
9382 pszintlkey: &windows_core::PCSTR,
9383 dwflags: u32,
9384 ) -> windows_core::Result<()>;
9385 fn GetFont(
9386 &self,
9387 fnttype: FNTSYSTYPE,
9388 hcharset: *mut HCHARSET__,
9389 phfont: *mut windows::Win32::Graphics::Gdi::HFONT,
9390 ) -> windows_core::Result<()>;
9391 fn OnOptionChange(&self) -> windows_core::Result<()>;
9392 fn GetJP_ISOControl(&self, pfusesio: *mut windows_core::BOOL) -> windows_core::Result<()>;
9393}
9394impl IFontCache_Vtbl {
9395 pub const fn new<Identity: IFontCache_Impl, const OFFSET: isize>() -> Self {
9396 unsafe extern "system" fn Init<Identity: IFontCache_Impl, const OFFSET: isize>(
9397 this: *mut core::ffi::c_void,
9398 hkey: windows::Win32::System::Registry::HKEY,
9399 pszintlkey: windows_core::PCSTR,
9400 dwflags: u32,
9401 ) -> windows_core::HRESULT {
9402 unsafe {
9403 let this: &Identity =
9404 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9405 IFontCache_Impl::Init(
9406 this,
9407 core::mem::transmute_copy(&hkey),
9408 core::mem::transmute(&pszintlkey),
9409 core::mem::transmute_copy(&dwflags),
9410 )
9411 .into()
9412 }
9413 }
9414 unsafe extern "system" fn GetFont<Identity: IFontCache_Impl, const OFFSET: isize>(
9415 this: *mut core::ffi::c_void,
9416 fnttype: FNTSYSTYPE,
9417 hcharset: *mut HCHARSET__,
9418 phfont: *mut windows::Win32::Graphics::Gdi::HFONT,
9419 ) -> windows_core::HRESULT {
9420 unsafe {
9421 let this: &Identity =
9422 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9423 IFontCache_Impl::GetFont(
9424 this,
9425 core::mem::transmute_copy(&fnttype),
9426 core::mem::transmute_copy(&hcharset),
9427 core::mem::transmute_copy(&phfont),
9428 )
9429 .into()
9430 }
9431 }
9432 unsafe extern "system" fn OnOptionChange<Identity: IFontCache_Impl, const OFFSET: isize>(
9433 this: *mut core::ffi::c_void,
9434 ) -> windows_core::HRESULT {
9435 unsafe {
9436 let this: &Identity =
9437 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9438 IFontCache_Impl::OnOptionChange(this).into()
9439 }
9440 }
9441 unsafe extern "system" fn GetJP_ISOControl<
9442 Identity: IFontCache_Impl,
9443 const OFFSET: isize,
9444 >(
9445 this: *mut core::ffi::c_void,
9446 pfusesio: *mut windows_core::BOOL,
9447 ) -> windows_core::HRESULT {
9448 unsafe {
9449 let this: &Identity =
9450 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9451 IFontCache_Impl::GetJP_ISOControl(this, core::mem::transmute_copy(&pfusesio)).into()
9452 }
9453 }
9454 Self {
9455 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9456 Init: Init::<Identity, OFFSET>,
9457 GetFont: GetFont::<Identity, OFFSET>,
9458 OnOptionChange: OnOptionChange::<Identity, OFFSET>,
9459 GetJP_ISOControl: GetJP_ISOControl::<Identity, OFFSET>,
9460 }
9461 }
9462 pub fn matches(iid: &windows_core::GUID) -> bool {
9463 iid == &<IFontCache as windows_core::Interface>::IID
9464 }
9465}
9466impl windows_core::RuntimeName for IFontCache {}
9467windows_core::imp::define_interface!(
9468 IFontCacheNotify,
9469 IFontCacheNotify_Vtbl,
9470 0xb0d17fc5_7bc4_11d1_bdfa_00c04fa31009
9471);
9472windows_core::imp::interface_hierarchy!(IFontCacheNotify, windows_core::IUnknown);
9473impl IFontCacheNotify {
9474 pub unsafe fn OnPreFontChange(&self) -> windows_core::Result<()> {
9475 unsafe {
9476 (windows_core::Interface::vtable(self).OnPreFontChange)(
9477 windows_core::Interface::as_raw(self),
9478 )
9479 .ok()
9480 }
9481 }
9482 pub unsafe fn OnPostFontChange(&self) -> windows_core::Result<()> {
9483 unsafe {
9484 (windows_core::Interface::vtable(self).OnPostFontChange)(
9485 windows_core::Interface::as_raw(self),
9486 )
9487 .ok()
9488 }
9489 }
9490}
9491#[repr(C)]
9492pub struct IFontCacheNotify_Vtbl {
9493 pub base__: windows_core::IUnknown_Vtbl,
9494 pub OnPreFontChange: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9495 pub OnPostFontChange:
9496 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9497}
9498pub trait IFontCacheNotify_Impl: windows_core::IUnknownImpl {
9499 fn OnPreFontChange(&self) -> windows_core::Result<()>;
9500 fn OnPostFontChange(&self) -> windows_core::Result<()>;
9501}
9502impl IFontCacheNotify_Vtbl {
9503 pub const fn new<Identity: IFontCacheNotify_Impl, const OFFSET: isize>() -> Self {
9504 unsafe extern "system" fn OnPreFontChange<
9505 Identity: IFontCacheNotify_Impl,
9506 const OFFSET: isize,
9507 >(
9508 this: *mut core::ffi::c_void,
9509 ) -> windows_core::HRESULT {
9510 unsafe {
9511 let this: &Identity =
9512 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9513 IFontCacheNotify_Impl::OnPreFontChange(this).into()
9514 }
9515 }
9516 unsafe extern "system" fn OnPostFontChange<
9517 Identity: IFontCacheNotify_Impl,
9518 const OFFSET: isize,
9519 >(
9520 this: *mut core::ffi::c_void,
9521 ) -> windows_core::HRESULT {
9522 unsafe {
9523 let this: &Identity =
9524 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9525 IFontCacheNotify_Impl::OnPostFontChange(this).into()
9526 }
9527 }
9528 Self {
9529 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9530 OnPreFontChange: OnPreFontChange::<Identity, OFFSET>,
9531 OnPostFontChange: OnPostFontChange::<Identity, OFFSET>,
9532 }
9533 }
9534 pub fn matches(iid: &windows_core::GUID) -> bool {
9535 iid == &<IFontCacheNotify as windows_core::Interface>::IID
9536 }
9537}
9538impl windows_core::RuntimeName for IFontCacheNotify {}
9539windows_core::imp::define_interface!(
9540 IHashTable,
9541 IHashTable_Vtbl,
9542 0x64577981_86d7_11d1_bdfc_00c04fa31009
9543);
9544windows_core::imp::interface_hierarchy!(IHashTable, windows_core::IUnknown);
9545impl IHashTable {
9546 pub unsafe fn Init(&self, dwsize: u32, fdupekeys: bool) -> windows_core::Result<()> {
9547 unsafe {
9548 (windows_core::Interface::vtable(self).Init)(
9549 windows_core::Interface::as_raw(self),
9550 dwsize,
9551 fdupekeys.into(),
9552 )
9553 .ok()
9554 }
9555 }
9556 pub unsafe fn Insert<P0>(
9557 &self,
9558 psz: P0,
9559 pv: *mut core::ffi::c_void,
9560 dwflags: u32,
9561 ) -> windows_core::Result<()>
9562 where
9563 P0: windows_core::Param<windows_core::PCSTR>,
9564 {
9565 unsafe {
9566 (windows_core::Interface::vtable(self).Insert)(
9567 windows_core::Interface::as_raw(self),
9568 psz.param().abi(),
9569 pv as _,
9570 dwflags,
9571 )
9572 .ok()
9573 }
9574 }
9575 pub unsafe fn Replace<P0>(
9576 &self,
9577 psz: P0,
9578 pv: *mut core::ffi::c_void,
9579 ) -> windows_core::Result<()>
9580 where
9581 P0: windows_core::Param<windows_core::PCSTR>,
9582 {
9583 unsafe {
9584 (windows_core::Interface::vtable(self).Replace)(
9585 windows_core::Interface::as_raw(self),
9586 psz.param().abi(),
9587 pv as _,
9588 )
9589 .ok()
9590 }
9591 }
9592 pub unsafe fn Find<P0>(
9593 &self,
9594 psz: P0,
9595 fremove: bool,
9596 ppv: *mut *mut core::ffi::c_void,
9597 ) -> windows_core::Result<()>
9598 where
9599 P0: windows_core::Param<windows_core::PCSTR>,
9600 {
9601 unsafe {
9602 (windows_core::Interface::vtable(self).Find)(
9603 windows_core::Interface::as_raw(self),
9604 psz.param().abi(),
9605 fremove.into(),
9606 ppv as _,
9607 )
9608 .ok()
9609 }
9610 }
9611 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
9612 unsafe {
9613 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
9614 .ok()
9615 }
9616 }
9617 pub unsafe fn Next(
9618 &self,
9619 cfetch: u32,
9620 prgpv: *mut *mut *mut core::ffi::c_void,
9621 pcfetched: *mut u32,
9622 ) -> windows_core::Result<()> {
9623 unsafe {
9624 (windows_core::Interface::vtable(self).Next)(
9625 windows_core::Interface::as_raw(self),
9626 cfetch,
9627 prgpv as _,
9628 pcfetched as _,
9629 )
9630 .ok()
9631 }
9632 }
9633}
9634#[repr(C)]
9635pub struct IHashTable_Vtbl {
9636 pub base__: windows_core::IUnknown_Vtbl,
9637 pub Init: unsafe extern "system" fn(
9638 *mut core::ffi::c_void,
9639 u32,
9640 windows_core::BOOL,
9641 ) -> windows_core::HRESULT,
9642 pub Insert: unsafe extern "system" fn(
9643 *mut core::ffi::c_void,
9644 windows_core::PCSTR,
9645 *mut core::ffi::c_void,
9646 u32,
9647 ) -> windows_core::HRESULT,
9648 pub Replace: unsafe extern "system" fn(
9649 *mut core::ffi::c_void,
9650 windows_core::PCSTR,
9651 *mut core::ffi::c_void,
9652 ) -> windows_core::HRESULT,
9653 pub Find: unsafe extern "system" fn(
9654 *mut core::ffi::c_void,
9655 windows_core::PCSTR,
9656 windows_core::BOOL,
9657 *mut *mut core::ffi::c_void,
9658 ) -> windows_core::HRESULT,
9659 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9660 pub Next: unsafe extern "system" fn(
9661 *mut core::ffi::c_void,
9662 u32,
9663 *mut *mut *mut core::ffi::c_void,
9664 *mut u32,
9665 ) -> windows_core::HRESULT,
9666}
9667pub trait IHashTable_Impl: windows_core::IUnknownImpl {
9668 fn Init(&self, dwsize: u32, fdupekeys: windows_core::BOOL) -> windows_core::Result<()>;
9669 fn Insert(
9670 &self,
9671 psz: &windows_core::PCSTR,
9672 pv: *mut core::ffi::c_void,
9673 dwflags: u32,
9674 ) -> windows_core::Result<()>;
9675 fn Replace(
9676 &self,
9677 psz: &windows_core::PCSTR,
9678 pv: *mut core::ffi::c_void,
9679 ) -> windows_core::Result<()>;
9680 fn Find(
9681 &self,
9682 psz: &windows_core::PCSTR,
9683 fremove: windows_core::BOOL,
9684 ppv: *mut *mut core::ffi::c_void,
9685 ) -> windows_core::Result<()>;
9686 fn Reset(&self) -> windows_core::Result<()>;
9687 fn Next(
9688 &self,
9689 cfetch: u32,
9690 prgpv: *mut *mut *mut core::ffi::c_void,
9691 pcfetched: *mut u32,
9692 ) -> windows_core::Result<()>;
9693}
9694impl IHashTable_Vtbl {
9695 pub const fn new<Identity: IHashTable_Impl, const OFFSET: isize>() -> Self {
9696 unsafe extern "system" fn Init<Identity: IHashTable_Impl, const OFFSET: isize>(
9697 this: *mut core::ffi::c_void,
9698 dwsize: u32,
9699 fdupekeys: windows_core::BOOL,
9700 ) -> windows_core::HRESULT {
9701 unsafe {
9702 let this: &Identity =
9703 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9704 IHashTable_Impl::Init(
9705 this,
9706 core::mem::transmute_copy(&dwsize),
9707 core::mem::transmute_copy(&fdupekeys),
9708 )
9709 .into()
9710 }
9711 }
9712 unsafe extern "system" fn Insert<Identity: IHashTable_Impl, const OFFSET: isize>(
9713 this: *mut core::ffi::c_void,
9714 psz: windows_core::PCSTR,
9715 pv: *mut core::ffi::c_void,
9716 dwflags: u32,
9717 ) -> windows_core::HRESULT {
9718 unsafe {
9719 let this: &Identity =
9720 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9721 IHashTable_Impl::Insert(
9722 this,
9723 core::mem::transmute(&psz),
9724 core::mem::transmute_copy(&pv),
9725 core::mem::transmute_copy(&dwflags),
9726 )
9727 .into()
9728 }
9729 }
9730 unsafe extern "system" fn Replace<Identity: IHashTable_Impl, const OFFSET: isize>(
9731 this: *mut core::ffi::c_void,
9732 psz: windows_core::PCSTR,
9733 pv: *mut core::ffi::c_void,
9734 ) -> windows_core::HRESULT {
9735 unsafe {
9736 let this: &Identity =
9737 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9738 IHashTable_Impl::Replace(
9739 this,
9740 core::mem::transmute(&psz),
9741 core::mem::transmute_copy(&pv),
9742 )
9743 .into()
9744 }
9745 }
9746 unsafe extern "system" fn Find<Identity: IHashTable_Impl, const OFFSET: isize>(
9747 this: *mut core::ffi::c_void,
9748 psz: windows_core::PCSTR,
9749 fremove: windows_core::BOOL,
9750 ppv: *mut *mut core::ffi::c_void,
9751 ) -> windows_core::HRESULT {
9752 unsafe {
9753 let this: &Identity =
9754 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9755 IHashTable_Impl::Find(
9756 this,
9757 core::mem::transmute(&psz),
9758 core::mem::transmute_copy(&fremove),
9759 core::mem::transmute_copy(&ppv),
9760 )
9761 .into()
9762 }
9763 }
9764 unsafe extern "system" fn Reset<Identity: IHashTable_Impl, const OFFSET: isize>(
9765 this: *mut core::ffi::c_void,
9766 ) -> windows_core::HRESULT {
9767 unsafe {
9768 let this: &Identity =
9769 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9770 IHashTable_Impl::Reset(this).into()
9771 }
9772 }
9773 unsafe extern "system" fn Next<Identity: IHashTable_Impl, const OFFSET: isize>(
9774 this: *mut core::ffi::c_void,
9775 cfetch: u32,
9776 prgpv: *mut *mut *mut core::ffi::c_void,
9777 pcfetched: *mut u32,
9778 ) -> windows_core::HRESULT {
9779 unsafe {
9780 let this: &Identity =
9781 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9782 IHashTable_Impl::Next(
9783 this,
9784 core::mem::transmute_copy(&cfetch),
9785 core::mem::transmute_copy(&prgpv),
9786 core::mem::transmute_copy(&pcfetched),
9787 )
9788 .into()
9789 }
9790 }
9791 Self {
9792 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9793 Init: Init::<Identity, OFFSET>,
9794 Insert: Insert::<Identity, OFFSET>,
9795 Replace: Replace::<Identity, OFFSET>,
9796 Find: Find::<Identity, OFFSET>,
9797 Reset: Reset::<Identity, OFFSET>,
9798 Next: Next::<Identity, OFFSET>,
9799 }
9800 }
9801 pub fn matches(iid: &windows_core::GUID) -> bool {
9802 iid == &<IHashTable as windows_core::Interface>::IID
9803 }
9804}
9805impl windows_core::RuntimeName for IHashTable {}
9806pub const ILM_BODYCSET: INETLANGMASK = INETLANGMASK(4i32);
9807pub const ILM_FAMILY: INETLANGMASK = INETLANGMASK(1i32);
9808pub const ILM_FIXEDFONT: INETLANGMASK = INETLANGMASK(32i32);
9809pub const ILM_HEADERCSET: INETLANGMASK = INETLANGMASK(8i32);
9810pub const ILM_NAME: INETLANGMASK = INETLANGMASK(2i32);
9811pub const ILM_VARIABLEFONT: INETLANGMASK = INETLANGMASK(64i32);
9812pub const ILM_WEBCSET: INETLANGMASK = INETLANGMASK(16i32);
9813windows_core::imp::define_interface!(
9814 IMAPIAdviseSink,
9815 IMAPIAdviseSink_Vtbl,
9816 0x00020302_0000_0000_c000_000000000046
9817);
9818windows_core::imp::interface_hierarchy!(IMAPIAdviseSink, windows_core::IUnknown);
9819impl IMAPIAdviseSink {
9820 pub unsafe fn OnNotify(&self, cnotif: u32, lpnotifications: *mut NOTIFICATION) -> u32 {
9821 unsafe {
9822 (windows_core::Interface::vtable(self).OnNotify)(
9823 windows_core::Interface::as_raw(self),
9824 cnotif,
9825 lpnotifications as _,
9826 )
9827 }
9828 }
9829}
9830#[repr(C)]
9831pub struct IMAPIAdviseSink_Vtbl {
9832 pub base__: windows_core::IUnknown_Vtbl,
9833 pub OnNotify: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut NOTIFICATION) -> u32,
9834}
9835pub trait IMAPIAdviseSink_Impl: windows_core::IUnknownImpl {
9836 fn OnNotify(&self, cnotif: u32, lpnotifications: *mut NOTIFICATION) -> u32;
9837}
9838impl IMAPIAdviseSink_Vtbl {
9839 pub const fn new<Identity: IMAPIAdviseSink_Impl, const OFFSET: isize>() -> Self {
9840 unsafe extern "system" fn OnNotify<Identity: IMAPIAdviseSink_Impl, const OFFSET: isize>(
9841 this: *mut core::ffi::c_void,
9842 cnotif: u32,
9843 lpnotifications: *mut NOTIFICATION,
9844 ) -> u32 {
9845 unsafe {
9846 let this: &Identity =
9847 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9848 IMAPIAdviseSink_Impl::OnNotify(
9849 this,
9850 core::mem::transmute_copy(&cnotif),
9851 core::mem::transmute_copy(&lpnotifications),
9852 )
9853 }
9854 }
9855 Self {
9856 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9857 OnNotify: OnNotify::<Identity, OFFSET>,
9858 }
9859 }
9860 pub fn matches(iid: &windows_core::GUID) -> bool {
9861 iid == &<IMAPIAdviseSink as windows_core::Interface>::IID
9862 }
9863}
9864impl windows_core::RuntimeName for IMAPIAdviseSink {}
9865pub const IMAPIAdviseSink_OnNotify: METHODS = METHODS(137i32);
9866windows_core::imp::define_interface!(
9867 IMAPIClientShutdown,
9868 IMAPIClientShutdown_Vtbl,
9869 0x00020397_0000_0000_c000_000000000046
9870);
9871windows_core::imp::interface_hierarchy!(IMAPIClientShutdown, windows_core::IUnknown);
9872impl IMAPIClientShutdown {
9873 pub unsafe fn QueryFastShutdown(&self) -> windows_core::Result<()> {
9874 unsafe {
9875 (windows_core::Interface::vtable(self).QueryFastShutdown)(
9876 windows_core::Interface::as_raw(self),
9877 )
9878 .ok()
9879 }
9880 }
9881 pub unsafe fn NotifyProcessShutdown(&self) -> windows_core::Result<()> {
9882 unsafe {
9883 (windows_core::Interface::vtable(self).NotifyProcessShutdown)(
9884 windows_core::Interface::as_raw(self),
9885 )
9886 .ok()
9887 }
9888 }
9889 pub unsafe fn DoFastShutdown(&self) -> windows_core::Result<()> {
9890 unsafe {
9891 (windows_core::Interface::vtable(self).DoFastShutdown)(windows_core::Interface::as_raw(
9892 self,
9893 ))
9894 .ok()
9895 }
9896 }
9897}
9898#[repr(C)]
9899pub struct IMAPIClientShutdown_Vtbl {
9900 pub base__: windows_core::IUnknown_Vtbl,
9901 pub QueryFastShutdown:
9902 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9903 pub NotifyProcessShutdown:
9904 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9905 pub DoFastShutdown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9906}
9907pub trait IMAPIClientShutdown_Impl: windows_core::IUnknownImpl {
9908 fn QueryFastShutdown(&self) -> windows_core::Result<()>;
9909 fn NotifyProcessShutdown(&self) -> windows_core::Result<()>;
9910 fn DoFastShutdown(&self) -> windows_core::Result<()>;
9911}
9912impl IMAPIClientShutdown_Vtbl {
9913 pub const fn new<Identity: IMAPIClientShutdown_Impl, const OFFSET: isize>() -> Self {
9914 unsafe extern "system" fn QueryFastShutdown<
9915 Identity: IMAPIClientShutdown_Impl,
9916 const OFFSET: isize,
9917 >(
9918 this: *mut core::ffi::c_void,
9919 ) -> windows_core::HRESULT {
9920 unsafe {
9921 let this: &Identity =
9922 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9923 IMAPIClientShutdown_Impl::QueryFastShutdown(this).into()
9924 }
9925 }
9926 unsafe extern "system" fn NotifyProcessShutdown<
9927 Identity: IMAPIClientShutdown_Impl,
9928 const OFFSET: isize,
9929 >(
9930 this: *mut core::ffi::c_void,
9931 ) -> windows_core::HRESULT {
9932 unsafe {
9933 let this: &Identity =
9934 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9935 IMAPIClientShutdown_Impl::NotifyProcessShutdown(this).into()
9936 }
9937 }
9938 unsafe extern "system" fn DoFastShutdown<
9939 Identity: IMAPIClientShutdown_Impl,
9940 const OFFSET: isize,
9941 >(
9942 this: *mut core::ffi::c_void,
9943 ) -> windows_core::HRESULT {
9944 unsafe {
9945 let this: &Identity =
9946 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9947 IMAPIClientShutdown_Impl::DoFastShutdown(this).into()
9948 }
9949 }
9950 Self {
9951 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9952 QueryFastShutdown: QueryFastShutdown::<Identity, OFFSET>,
9953 NotifyProcessShutdown: NotifyProcessShutdown::<Identity, OFFSET>,
9954 DoFastShutdown: DoFastShutdown::<Identity, OFFSET>,
9955 }
9956 }
9957 pub fn matches(iid: &windows_core::GUID) -> bool {
9958 iid == &<IMAPIClientShutdown as windows_core::Interface>::IID
9959 }
9960}
9961impl windows_core::RuntimeName for IMAPIClientShutdown {}
9962windows_core::imp::define_interface!(
9963 IMAPIContainer,
9964 IMAPIContainer_Vtbl,
9965 0x0002030b_0000_0000_c000_000000000046
9966);
9967impl core::ops::Deref for IMAPIContainer {
9968 type Target = IMAPIProp;
9969 fn deref(&self) -> &Self::Target {
9970 unsafe { core::mem::transmute(self) }
9971 }
9972}
9973windows_core::imp::interface_hierarchy!(IMAPIContainer, windows_core::IUnknown, IMAPIProp);
9974impl IMAPIContainer {
9975 pub unsafe fn GetContentsTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
9976 unsafe {
9977 let mut result__ = core::mem::zeroed();
9978 (windows_core::Interface::vtable(self).GetContentsTable)(
9979 windows_core::Interface::as_raw(self),
9980 ulflags,
9981 &mut result__,
9982 )
9983 .and_then(|| windows_core::Type::from_abi(result__))
9984 }
9985 }
9986 pub unsafe fn GetHierarchyTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
9987 unsafe {
9988 let mut result__ = core::mem::zeroed();
9989 (windows_core::Interface::vtable(self).GetHierarchyTable)(
9990 windows_core::Interface::as_raw(self),
9991 ulflags,
9992 &mut result__,
9993 )
9994 .and_then(|| windows_core::Type::from_abi(result__))
9995 }
9996 }
9997 pub unsafe fn OpenEntry(
9998 &self,
9999 cbentryid: u32,
10000 lpentryid: *mut ENTRYID,
10001 lpinterface: *mut windows_core::GUID,
10002 ulflags: u32,
10003 lpulobjtype: *mut u32,
10004 lppunk: *mut Option<windows_core::IUnknown>,
10005 ) -> windows_core::Result<()> {
10006 unsafe {
10007 (windows_core::Interface::vtable(self).OpenEntry)(
10008 windows_core::Interface::as_raw(self),
10009 cbentryid,
10010 lpentryid as _,
10011 lpinterface as _,
10012 ulflags,
10013 lpulobjtype as _,
10014 core::mem::transmute(lppunk),
10015 )
10016 .ok()
10017 }
10018 }
10019 pub unsafe fn SetSearchCriteria(
10020 &self,
10021 lprestriction: *mut SRestriction,
10022 lpcontainerlist: *mut SBinaryArray,
10023 ulsearchflags: u32,
10024 ) -> windows_core::Result<()> {
10025 unsafe {
10026 (windows_core::Interface::vtable(self).SetSearchCriteria)(
10027 windows_core::Interface::as_raw(self),
10028 lprestriction as _,
10029 lpcontainerlist as _,
10030 ulsearchflags,
10031 )
10032 .ok()
10033 }
10034 }
10035 pub unsafe fn GetSearchCriteria(
10036 &self,
10037 ulflags: u32,
10038 lpprestriction: *mut *mut SRestriction,
10039 lppcontainerlist: *mut *mut SBinaryArray,
10040 lpulsearchstate: *mut u32,
10041 ) -> windows_core::Result<()> {
10042 unsafe {
10043 (windows_core::Interface::vtable(self).GetSearchCriteria)(
10044 windows_core::Interface::as_raw(self),
10045 ulflags,
10046 lpprestriction as _,
10047 lppcontainerlist as _,
10048 lpulsearchstate as _,
10049 )
10050 .ok()
10051 }
10052 }
10053}
10054#[repr(C)]
10055pub struct IMAPIContainer_Vtbl {
10056 pub base__: IMAPIProp_Vtbl,
10057 pub GetContentsTable: unsafe extern "system" fn(
10058 *mut core::ffi::c_void,
10059 u32,
10060 *mut *mut core::ffi::c_void,
10061 ) -> windows_core::HRESULT,
10062 pub GetHierarchyTable: unsafe extern "system" fn(
10063 *mut core::ffi::c_void,
10064 u32,
10065 *mut *mut core::ffi::c_void,
10066 ) -> windows_core::HRESULT,
10067 pub OpenEntry: unsafe extern "system" fn(
10068 *mut core::ffi::c_void,
10069 u32,
10070 *mut ENTRYID,
10071 *mut windows_core::GUID,
10072 u32,
10073 *mut u32,
10074 *mut *mut core::ffi::c_void,
10075 ) -> windows_core::HRESULT,
10076 pub SetSearchCriteria: unsafe extern "system" fn(
10077 *mut core::ffi::c_void,
10078 *mut SRestriction,
10079 *mut SBinaryArray,
10080 u32,
10081 ) -> windows_core::HRESULT,
10082 pub GetSearchCriteria: unsafe extern "system" fn(
10083 *mut core::ffi::c_void,
10084 u32,
10085 *mut *mut SRestriction,
10086 *mut *mut SBinaryArray,
10087 *mut u32,
10088 ) -> windows_core::HRESULT,
10089}
10090pub trait IMAPIContainer_Impl: IMAPIProp_Impl {
10091 fn GetContentsTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
10092 fn GetHierarchyTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
10093 fn OpenEntry(
10094 &self,
10095 cbentryid: u32,
10096 lpentryid: *mut ENTRYID,
10097 lpinterface: *mut windows_core::GUID,
10098 ulflags: u32,
10099 lpulobjtype: *mut u32,
10100 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
10101 ) -> windows_core::Result<()>;
10102 fn SetSearchCriteria(
10103 &self,
10104 lprestriction: *mut SRestriction,
10105 lpcontainerlist: *mut SBinaryArray,
10106 ulsearchflags: u32,
10107 ) -> windows_core::Result<()>;
10108 fn GetSearchCriteria(
10109 &self,
10110 ulflags: u32,
10111 lpprestriction: *mut *mut SRestriction,
10112 lppcontainerlist: *mut *mut SBinaryArray,
10113 lpulsearchstate: *mut u32,
10114 ) -> windows_core::Result<()>;
10115}
10116impl IMAPIContainer_Vtbl {
10117 pub const fn new<Identity: IMAPIContainer_Impl, const OFFSET: isize>() -> Self {
10118 unsafe extern "system" fn GetContentsTable<
10119 Identity: IMAPIContainer_Impl,
10120 const OFFSET: isize,
10121 >(
10122 this: *mut core::ffi::c_void,
10123 ulflags: u32,
10124 lpptable: *mut *mut core::ffi::c_void,
10125 ) -> windows_core::HRESULT {
10126 unsafe {
10127 let this: &Identity =
10128 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10129 match IMAPIContainer_Impl::GetContentsTable(
10130 this,
10131 core::mem::transmute_copy(&ulflags),
10132 ) {
10133 Ok(ok__) => {
10134 lpptable.write(core::mem::transmute(ok__));
10135 windows_core::HRESULT(0)
10136 }
10137 Err(err) => err.into(),
10138 }
10139 }
10140 }
10141 unsafe extern "system" fn GetHierarchyTable<
10142 Identity: IMAPIContainer_Impl,
10143 const OFFSET: isize,
10144 >(
10145 this: *mut core::ffi::c_void,
10146 ulflags: u32,
10147 lpptable: *mut *mut core::ffi::c_void,
10148 ) -> windows_core::HRESULT {
10149 unsafe {
10150 let this: &Identity =
10151 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10152 match IMAPIContainer_Impl::GetHierarchyTable(
10153 this,
10154 core::mem::transmute_copy(&ulflags),
10155 ) {
10156 Ok(ok__) => {
10157 lpptable.write(core::mem::transmute(ok__));
10158 windows_core::HRESULT(0)
10159 }
10160 Err(err) => err.into(),
10161 }
10162 }
10163 }
10164 unsafe extern "system" fn OpenEntry<Identity: IMAPIContainer_Impl, const OFFSET: isize>(
10165 this: *mut core::ffi::c_void,
10166 cbentryid: u32,
10167 lpentryid: *mut ENTRYID,
10168 lpinterface: *mut windows_core::GUID,
10169 ulflags: u32,
10170 lpulobjtype: *mut u32,
10171 lppunk: *mut *mut core::ffi::c_void,
10172 ) -> windows_core::HRESULT {
10173 unsafe {
10174 let this: &Identity =
10175 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10176 IMAPIContainer_Impl::OpenEntry(
10177 this,
10178 core::mem::transmute_copy(&cbentryid),
10179 core::mem::transmute_copy(&lpentryid),
10180 core::mem::transmute_copy(&lpinterface),
10181 core::mem::transmute_copy(&ulflags),
10182 core::mem::transmute_copy(&lpulobjtype),
10183 core::mem::transmute_copy(&lppunk),
10184 )
10185 .into()
10186 }
10187 }
10188 unsafe extern "system" fn SetSearchCriteria<
10189 Identity: IMAPIContainer_Impl,
10190 const OFFSET: isize,
10191 >(
10192 this: *mut core::ffi::c_void,
10193 lprestriction: *mut SRestriction,
10194 lpcontainerlist: *mut SBinaryArray,
10195 ulsearchflags: u32,
10196 ) -> windows_core::HRESULT {
10197 unsafe {
10198 let this: &Identity =
10199 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10200 IMAPIContainer_Impl::SetSearchCriteria(
10201 this,
10202 core::mem::transmute_copy(&lprestriction),
10203 core::mem::transmute_copy(&lpcontainerlist),
10204 core::mem::transmute_copy(&ulsearchflags),
10205 )
10206 .into()
10207 }
10208 }
10209 unsafe extern "system" fn GetSearchCriteria<
10210 Identity: IMAPIContainer_Impl,
10211 const OFFSET: isize,
10212 >(
10213 this: *mut core::ffi::c_void,
10214 ulflags: u32,
10215 lpprestriction: *mut *mut SRestriction,
10216 lppcontainerlist: *mut *mut SBinaryArray,
10217 lpulsearchstate: *mut u32,
10218 ) -> windows_core::HRESULT {
10219 unsafe {
10220 let this: &Identity =
10221 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10222 IMAPIContainer_Impl::GetSearchCriteria(
10223 this,
10224 core::mem::transmute_copy(&ulflags),
10225 core::mem::transmute_copy(&lpprestriction),
10226 core::mem::transmute_copy(&lppcontainerlist),
10227 core::mem::transmute_copy(&lpulsearchstate),
10228 )
10229 .into()
10230 }
10231 }
10232 Self {
10233 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
10234 GetContentsTable: GetContentsTable::<Identity, OFFSET>,
10235 GetHierarchyTable: GetHierarchyTable::<Identity, OFFSET>,
10236 OpenEntry: OpenEntry::<Identity, OFFSET>,
10237 SetSearchCriteria: SetSearchCriteria::<Identity, OFFSET>,
10238 GetSearchCriteria: GetSearchCriteria::<Identity, OFFSET>,
10239 }
10240 }
10241 pub fn matches(iid: &windows_core::GUID) -> bool {
10242 iid == &<IMAPIContainer as windows_core::Interface>::IID
10243 || iid == &<IMAPIProp as windows_core::Interface>::IID
10244 }
10245}
10246impl windows_core::RuntimeName for IMAPIContainer {}
10247pub const IMAPIContainer_GetContentsTable: METHODS = METHODS(37i32);
10248pub const IMAPIContainer_GetHierarchyTable: METHODS = METHODS(38i32);
10249pub const IMAPIContainer_GetSearchCriteria: METHODS = METHODS(41i32);
10250pub const IMAPIContainer_OpenEntry: METHODS = METHODS(39i32);
10251pub const IMAPIContainer_SetSearchCriteria: METHODS = METHODS(40i32);
10252windows_core::imp::define_interface!(
10253 IMAPIControl,
10254 IMAPIControl_Vtbl,
10255 0x0002031b_0000_0000_c000_000000000046
10256);
10257windows_core::imp::interface_hierarchy!(IMAPIControl, windows_core::IUnknown);
10258impl IMAPIControl {
10259 pub unsafe fn GetLastError(
10260 &self,
10261 hresult: windows_core::HRESULT,
10262 ulflags: u32,
10263 lppmapierror: *mut *mut MAPIERROR,
10264 ) -> windows_core::Result<()> {
10265 unsafe {
10266 (windows_core::Interface::vtable(self).GetLastError)(
10267 windows_core::Interface::as_raw(self),
10268 hresult,
10269 ulflags,
10270 lppmapierror as _,
10271 )
10272 .ok()
10273 }
10274 }
10275 pub unsafe fn Activate(&self, ulflags: u32, uluiparam: usize) -> windows_core::Result<()> {
10276 unsafe {
10277 (windows_core::Interface::vtable(self).Activate)(
10278 windows_core::Interface::as_raw(self),
10279 ulflags,
10280 uluiparam,
10281 )
10282 .ok()
10283 }
10284 }
10285 pub unsafe fn GetState(&self, ulflags: u32, lpulstate: *mut u32) -> windows_core::Result<()> {
10286 unsafe {
10287 (windows_core::Interface::vtable(self).GetState)(
10288 windows_core::Interface::as_raw(self),
10289 ulflags,
10290 lpulstate as _,
10291 )
10292 .ok()
10293 }
10294 }
10295}
10296#[repr(C)]
10297pub struct IMAPIControl_Vtbl {
10298 pub base__: windows_core::IUnknown_Vtbl,
10299 pub GetLastError: unsafe extern "system" fn(
10300 *mut core::ffi::c_void,
10301 windows_core::HRESULT,
10302 u32,
10303 *mut *mut MAPIERROR,
10304 ) -> windows_core::HRESULT,
10305 pub Activate:
10306 unsafe extern "system" fn(*mut core::ffi::c_void, u32, usize) -> windows_core::HRESULT,
10307 pub GetState:
10308 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
10309}
10310pub trait IMAPIControl_Impl: windows_core::IUnknownImpl {
10311 fn GetLastError(
10312 &self,
10313 hresult: windows_core::HRESULT,
10314 ulflags: u32,
10315 lppmapierror: *mut *mut MAPIERROR,
10316 ) -> windows_core::Result<()>;
10317 fn Activate(&self, ulflags: u32, uluiparam: usize) -> windows_core::Result<()>;
10318 fn GetState(&self, ulflags: u32, lpulstate: *mut u32) -> windows_core::Result<()>;
10319}
10320impl IMAPIControl_Vtbl {
10321 pub const fn new<Identity: IMAPIControl_Impl, const OFFSET: isize>() -> Self {
10322 unsafe extern "system" fn GetLastError<Identity: IMAPIControl_Impl, const OFFSET: isize>(
10323 this: *mut core::ffi::c_void,
10324 hresult: windows_core::HRESULT,
10325 ulflags: u32,
10326 lppmapierror: *mut *mut MAPIERROR,
10327 ) -> windows_core::HRESULT {
10328 unsafe {
10329 let this: &Identity =
10330 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10331 IMAPIControl_Impl::GetLastError(
10332 this,
10333 core::mem::transmute_copy(&hresult),
10334 core::mem::transmute_copy(&ulflags),
10335 core::mem::transmute_copy(&lppmapierror),
10336 )
10337 .into()
10338 }
10339 }
10340 unsafe extern "system" fn Activate<Identity: IMAPIControl_Impl, const OFFSET: isize>(
10341 this: *mut core::ffi::c_void,
10342 ulflags: u32,
10343 uluiparam: usize,
10344 ) -> windows_core::HRESULT {
10345 unsafe {
10346 let this: &Identity =
10347 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10348 IMAPIControl_Impl::Activate(
10349 this,
10350 core::mem::transmute_copy(&ulflags),
10351 core::mem::transmute_copy(&uluiparam),
10352 )
10353 .into()
10354 }
10355 }
10356 unsafe extern "system" fn GetState<Identity: IMAPIControl_Impl, const OFFSET: isize>(
10357 this: *mut core::ffi::c_void,
10358 ulflags: u32,
10359 lpulstate: *mut u32,
10360 ) -> windows_core::HRESULT {
10361 unsafe {
10362 let this: &Identity =
10363 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10364 IMAPIControl_Impl::GetState(
10365 this,
10366 core::mem::transmute_copy(&ulflags),
10367 core::mem::transmute_copy(&lpulstate),
10368 )
10369 .into()
10370 }
10371 }
10372 Self {
10373 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10374 GetLastError: GetLastError::<Identity, OFFSET>,
10375 Activate: Activate::<Identity, OFFSET>,
10376 GetState: GetState::<Identity, OFFSET>,
10377 }
10378 }
10379 pub fn matches(iid: &windows_core::GUID) -> bool {
10380 iid == &<IMAPIControl as windows_core::Interface>::IID
10381 }
10382}
10383impl windows_core::RuntimeName for IMAPIControl {}
10384pub const IMAPIControl_Activate: METHODS = METHODS(120i32);
10385pub const IMAPIControl_GetLastError: METHODS = METHODS(119i32);
10386pub const IMAPIControl_GetState: METHODS = METHODS(121i32);
10387windows_core::imp::define_interface!(
10388 IMAPIFolder,
10389 IMAPIFolder_Vtbl,
10390 0x0002030c_0000_0000_c000_000000000046
10391);
10392impl core::ops::Deref for IMAPIFolder {
10393 type Target = IMAPIContainer;
10394 fn deref(&self) -> &Self::Target {
10395 unsafe { core::mem::transmute(self) }
10396 }
10397}
10398windows_core::imp::interface_hierarchy!(
10399 IMAPIFolder,
10400 windows_core::IUnknown,
10401 IMAPIProp,
10402 IMAPIContainer
10403);
10404impl IMAPIFolder {
10405 pub unsafe fn CreateMessage(
10406 &self,
10407 lpinterface: *mut windows_core::GUID,
10408 ulflags: u32,
10409 lppmessage: *mut Option<IMessage>,
10410 ) -> windows_core::Result<()> {
10411 unsafe {
10412 (windows_core::Interface::vtable(self).CreateMessage)(
10413 windows_core::Interface::as_raw(self),
10414 lpinterface as _,
10415 ulflags,
10416 core::mem::transmute(lppmessage),
10417 )
10418 .ok()
10419 }
10420 }
10421 pub unsafe fn CopyMessages<P4>(
10422 &self,
10423 lpmsglist: *mut SBinaryArray,
10424 lpinterface: *mut windows_core::GUID,
10425 lpdestfolder: *mut core::ffi::c_void,
10426 uluiparam: usize,
10427 lpprogress: P4,
10428 ulflags: u32,
10429 ) -> windows_core::Result<()>
10430 where
10431 P4: windows_core::Param<IMAPIProgress>,
10432 {
10433 unsafe {
10434 (windows_core::Interface::vtable(self).CopyMessages)(
10435 windows_core::Interface::as_raw(self),
10436 lpmsglist as _,
10437 lpinterface as _,
10438 lpdestfolder as _,
10439 uluiparam,
10440 lpprogress.param().abi(),
10441 ulflags,
10442 )
10443 .ok()
10444 }
10445 }
10446 pub unsafe fn DeleteMessages<P2>(
10447 &self,
10448 lpmsglist: *mut SBinaryArray,
10449 uluiparam: usize,
10450 lpprogress: P2,
10451 ulflags: u32,
10452 ) -> windows_core::Result<()>
10453 where
10454 P2: windows_core::Param<IMAPIProgress>,
10455 {
10456 unsafe {
10457 (windows_core::Interface::vtable(self).DeleteMessages)(
10458 windows_core::Interface::as_raw(self),
10459 lpmsglist as _,
10460 uluiparam,
10461 lpprogress.param().abi(),
10462 ulflags,
10463 )
10464 .ok()
10465 }
10466 }
10467 pub unsafe fn CreateFolder(
10468 &self,
10469 ulfoldertype: u32,
10470 lpszfoldername: *mut i8,
10471 lpszfoldercomment: *mut i8,
10472 lpinterface: *mut windows_core::GUID,
10473 ulflags: u32,
10474 lppfolder: *mut Option<IMAPIFolder>,
10475 ) -> windows_core::Result<()> {
10476 unsafe {
10477 (windows_core::Interface::vtable(self).CreateFolder)(
10478 windows_core::Interface::as_raw(self),
10479 ulfoldertype,
10480 lpszfoldername as _,
10481 lpszfoldercomment as _,
10482 lpinterface as _,
10483 ulflags,
10484 core::mem::transmute(lppfolder),
10485 )
10486 .ok()
10487 }
10488 }
10489 pub unsafe fn CopyFolder<P6>(
10490 &self,
10491 cbentryid: u32,
10492 lpentryid: *mut ENTRYID,
10493 lpinterface: *mut windows_core::GUID,
10494 lpdestfolder: *mut core::ffi::c_void,
10495 lpsznewfoldername: *mut i8,
10496 uluiparam: usize,
10497 lpprogress: P6,
10498 ulflags: u32,
10499 ) -> windows_core::Result<()>
10500 where
10501 P6: windows_core::Param<IMAPIProgress>,
10502 {
10503 unsafe {
10504 (windows_core::Interface::vtable(self).CopyFolder)(
10505 windows_core::Interface::as_raw(self),
10506 cbentryid,
10507 lpentryid as _,
10508 lpinterface as _,
10509 lpdestfolder as _,
10510 lpsznewfoldername as _,
10511 uluiparam,
10512 lpprogress.param().abi(),
10513 ulflags,
10514 )
10515 .ok()
10516 }
10517 }
10518 pub unsafe fn DeleteFolder<P3>(
10519 &self,
10520 cbentryid: u32,
10521 lpentryid: *mut ENTRYID,
10522 uluiparam: usize,
10523 lpprogress: P3,
10524 ulflags: u32,
10525 ) -> windows_core::Result<()>
10526 where
10527 P3: windows_core::Param<IMAPIProgress>,
10528 {
10529 unsafe {
10530 (windows_core::Interface::vtable(self).DeleteFolder)(
10531 windows_core::Interface::as_raw(self),
10532 cbentryid,
10533 lpentryid as _,
10534 uluiparam,
10535 lpprogress.param().abi(),
10536 ulflags,
10537 )
10538 .ok()
10539 }
10540 }
10541 pub unsafe fn SetReadFlags<P2>(
10542 &self,
10543 lpmsglist: *mut SBinaryArray,
10544 uluiparam: usize,
10545 lpprogress: P2,
10546 ulflags: u32,
10547 ) -> windows_core::Result<()>
10548 where
10549 P2: windows_core::Param<IMAPIProgress>,
10550 {
10551 unsafe {
10552 (windows_core::Interface::vtable(self).SetReadFlags)(
10553 windows_core::Interface::as_raw(self),
10554 lpmsglist as _,
10555 uluiparam,
10556 lpprogress.param().abi(),
10557 ulflags,
10558 )
10559 .ok()
10560 }
10561 }
10562 pub unsafe fn GetMessageStatus(
10563 &self,
10564 cbentryid: u32,
10565 lpentryid: *mut ENTRYID,
10566 ulflags: u32,
10567 lpulmessagestatus: *mut u32,
10568 ) -> windows_core::Result<()> {
10569 unsafe {
10570 (windows_core::Interface::vtable(self).GetMessageStatus)(
10571 windows_core::Interface::as_raw(self),
10572 cbentryid,
10573 lpentryid as _,
10574 ulflags,
10575 lpulmessagestatus as _,
10576 )
10577 .ok()
10578 }
10579 }
10580 pub unsafe fn SetMessageStatus(
10581 &self,
10582 cbentryid: u32,
10583 lpentryid: *mut ENTRYID,
10584 ulnewstatus: u32,
10585 ulnewstatusmask: u32,
10586 lpuloldstatus: *mut u32,
10587 ) -> windows_core::Result<()> {
10588 unsafe {
10589 (windows_core::Interface::vtable(self).SetMessageStatus)(
10590 windows_core::Interface::as_raw(self),
10591 cbentryid,
10592 lpentryid as _,
10593 ulnewstatus,
10594 ulnewstatusmask,
10595 lpuloldstatus as _,
10596 )
10597 .ok()
10598 }
10599 }
10600 pub unsafe fn SaveContentsSort(
10601 &self,
10602 lpsortcriteria: *mut SSortOrderSet,
10603 ulflags: u32,
10604 ) -> windows_core::Result<()> {
10605 unsafe {
10606 (windows_core::Interface::vtable(self).SaveContentsSort)(
10607 windows_core::Interface::as_raw(self),
10608 lpsortcriteria as _,
10609 ulflags,
10610 )
10611 .ok()
10612 }
10613 }
10614 pub unsafe fn EmptyFolder<P1>(
10615 &self,
10616 uluiparam: usize,
10617 lpprogress: P1,
10618 ulflags: u32,
10619 ) -> windows_core::Result<()>
10620 where
10621 P1: windows_core::Param<IMAPIProgress>,
10622 {
10623 unsafe {
10624 (windows_core::Interface::vtable(self).EmptyFolder)(
10625 windows_core::Interface::as_raw(self),
10626 uluiparam,
10627 lpprogress.param().abi(),
10628 ulflags,
10629 )
10630 .ok()
10631 }
10632 }
10633}
10634#[repr(C)]
10635pub struct IMAPIFolder_Vtbl {
10636 pub base__: IMAPIContainer_Vtbl,
10637 pub CreateMessage: unsafe extern "system" fn(
10638 *mut core::ffi::c_void,
10639 *mut windows_core::GUID,
10640 u32,
10641 *mut *mut core::ffi::c_void,
10642 ) -> windows_core::HRESULT,
10643 pub CopyMessages: unsafe extern "system" fn(
10644 *mut core::ffi::c_void,
10645 *mut SBinaryArray,
10646 *mut windows_core::GUID,
10647 *mut core::ffi::c_void,
10648 usize,
10649 *mut core::ffi::c_void,
10650 u32,
10651 ) -> windows_core::HRESULT,
10652 pub DeleteMessages: unsafe extern "system" fn(
10653 *mut core::ffi::c_void,
10654 *mut SBinaryArray,
10655 usize,
10656 *mut core::ffi::c_void,
10657 u32,
10658 ) -> windows_core::HRESULT,
10659 pub CreateFolder: unsafe extern "system" fn(
10660 *mut core::ffi::c_void,
10661 u32,
10662 *mut i8,
10663 *mut i8,
10664 *mut windows_core::GUID,
10665 u32,
10666 *mut *mut core::ffi::c_void,
10667 ) -> windows_core::HRESULT,
10668 pub CopyFolder: unsafe extern "system" fn(
10669 *mut core::ffi::c_void,
10670 u32,
10671 *mut ENTRYID,
10672 *mut windows_core::GUID,
10673 *mut core::ffi::c_void,
10674 *mut i8,
10675 usize,
10676 *mut core::ffi::c_void,
10677 u32,
10678 ) -> windows_core::HRESULT,
10679 pub DeleteFolder: unsafe extern "system" fn(
10680 *mut core::ffi::c_void,
10681 u32,
10682 *mut ENTRYID,
10683 usize,
10684 *mut core::ffi::c_void,
10685 u32,
10686 ) -> windows_core::HRESULT,
10687 pub SetReadFlags: unsafe extern "system" fn(
10688 *mut core::ffi::c_void,
10689 *mut SBinaryArray,
10690 usize,
10691 *mut core::ffi::c_void,
10692 u32,
10693 ) -> windows_core::HRESULT,
10694 pub GetMessageStatus: unsafe extern "system" fn(
10695 *mut core::ffi::c_void,
10696 u32,
10697 *mut ENTRYID,
10698 u32,
10699 *mut u32,
10700 ) -> windows_core::HRESULT,
10701 pub SetMessageStatus: unsafe extern "system" fn(
10702 *mut core::ffi::c_void,
10703 u32,
10704 *mut ENTRYID,
10705 u32,
10706 u32,
10707 *mut u32,
10708 ) -> windows_core::HRESULT,
10709 pub SaveContentsSort: unsafe extern "system" fn(
10710 *mut core::ffi::c_void,
10711 *mut SSortOrderSet,
10712 u32,
10713 ) -> windows_core::HRESULT,
10714 pub EmptyFolder: unsafe extern "system" fn(
10715 *mut core::ffi::c_void,
10716 usize,
10717 *mut core::ffi::c_void,
10718 u32,
10719 ) -> windows_core::HRESULT,
10720}
10721pub trait IMAPIFolder_Impl: IMAPIContainer_Impl {
10722 fn CreateMessage(
10723 &self,
10724 lpinterface: *mut windows_core::GUID,
10725 ulflags: u32,
10726 lppmessage: windows_core::OutRef<'_, IMessage>,
10727 ) -> windows_core::Result<()>;
10728 fn CopyMessages(
10729 &self,
10730 lpmsglist: *mut SBinaryArray,
10731 lpinterface: *mut windows_core::GUID,
10732 lpdestfolder: *mut core::ffi::c_void,
10733 uluiparam: usize,
10734 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
10735 ulflags: u32,
10736 ) -> windows_core::Result<()>;
10737 fn DeleteMessages(
10738 &self,
10739 lpmsglist: *mut SBinaryArray,
10740 uluiparam: usize,
10741 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
10742 ulflags: u32,
10743 ) -> windows_core::Result<()>;
10744 fn CreateFolder(
10745 &self,
10746 ulfoldertype: u32,
10747 lpszfoldername: *mut i8,
10748 lpszfoldercomment: *mut i8,
10749 lpinterface: *mut windows_core::GUID,
10750 ulflags: u32,
10751 lppfolder: windows_core::OutRef<'_, IMAPIFolder>,
10752 ) -> windows_core::Result<()>;
10753 fn CopyFolder(
10754 &self,
10755 cbentryid: u32,
10756 lpentryid: *mut ENTRYID,
10757 lpinterface: *mut windows_core::GUID,
10758 lpdestfolder: *mut core::ffi::c_void,
10759 lpsznewfoldername: *mut i8,
10760 uluiparam: usize,
10761 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
10762 ulflags: u32,
10763 ) -> windows_core::Result<()>;
10764 fn DeleteFolder(
10765 &self,
10766 cbentryid: u32,
10767 lpentryid: *mut ENTRYID,
10768 uluiparam: usize,
10769 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
10770 ulflags: u32,
10771 ) -> windows_core::Result<()>;
10772 fn SetReadFlags(
10773 &self,
10774 lpmsglist: *mut SBinaryArray,
10775 uluiparam: usize,
10776 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
10777 ulflags: u32,
10778 ) -> windows_core::Result<()>;
10779 fn GetMessageStatus(
10780 &self,
10781 cbentryid: u32,
10782 lpentryid: *mut ENTRYID,
10783 ulflags: u32,
10784 lpulmessagestatus: *mut u32,
10785 ) -> windows_core::Result<()>;
10786 fn SetMessageStatus(
10787 &self,
10788 cbentryid: u32,
10789 lpentryid: *mut ENTRYID,
10790 ulnewstatus: u32,
10791 ulnewstatusmask: u32,
10792 lpuloldstatus: *mut u32,
10793 ) -> windows_core::Result<()>;
10794 fn SaveContentsSort(
10795 &self,
10796 lpsortcriteria: *mut SSortOrderSet,
10797 ulflags: u32,
10798 ) -> windows_core::Result<()>;
10799 fn EmptyFolder(
10800 &self,
10801 uluiparam: usize,
10802 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
10803 ulflags: u32,
10804 ) -> windows_core::Result<()>;
10805}
10806impl IMAPIFolder_Vtbl {
10807 pub const fn new<Identity: IMAPIFolder_Impl, const OFFSET: isize>() -> Self {
10808 unsafe extern "system" fn CreateMessage<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10809 this: *mut core::ffi::c_void,
10810 lpinterface: *mut windows_core::GUID,
10811 ulflags: u32,
10812 lppmessage: *mut *mut core::ffi::c_void,
10813 ) -> windows_core::HRESULT {
10814 unsafe {
10815 let this: &Identity =
10816 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10817 IMAPIFolder_Impl::CreateMessage(
10818 this,
10819 core::mem::transmute_copy(&lpinterface),
10820 core::mem::transmute_copy(&ulflags),
10821 core::mem::transmute_copy(&lppmessage),
10822 )
10823 .into()
10824 }
10825 }
10826 unsafe extern "system" fn CopyMessages<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10827 this: *mut core::ffi::c_void,
10828 lpmsglist: *mut SBinaryArray,
10829 lpinterface: *mut windows_core::GUID,
10830 lpdestfolder: *mut core::ffi::c_void,
10831 uluiparam: usize,
10832 lpprogress: *mut core::ffi::c_void,
10833 ulflags: u32,
10834 ) -> windows_core::HRESULT {
10835 unsafe {
10836 let this: &Identity =
10837 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10838 IMAPIFolder_Impl::CopyMessages(
10839 this,
10840 core::mem::transmute_copy(&lpmsglist),
10841 core::mem::transmute_copy(&lpinterface),
10842 core::mem::transmute_copy(&lpdestfolder),
10843 core::mem::transmute_copy(&uluiparam),
10844 core::mem::transmute_copy(&lpprogress),
10845 core::mem::transmute_copy(&ulflags),
10846 )
10847 .into()
10848 }
10849 }
10850 unsafe extern "system" fn DeleteMessages<
10851 Identity: IMAPIFolder_Impl,
10852 const OFFSET: isize,
10853 >(
10854 this: *mut core::ffi::c_void,
10855 lpmsglist: *mut SBinaryArray,
10856 uluiparam: usize,
10857 lpprogress: *mut core::ffi::c_void,
10858 ulflags: u32,
10859 ) -> windows_core::HRESULT {
10860 unsafe {
10861 let this: &Identity =
10862 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10863 IMAPIFolder_Impl::DeleteMessages(
10864 this,
10865 core::mem::transmute_copy(&lpmsglist),
10866 core::mem::transmute_copy(&uluiparam),
10867 core::mem::transmute_copy(&lpprogress),
10868 core::mem::transmute_copy(&ulflags),
10869 )
10870 .into()
10871 }
10872 }
10873 unsafe extern "system" fn CreateFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10874 this: *mut core::ffi::c_void,
10875 ulfoldertype: u32,
10876 lpszfoldername: *mut i8,
10877 lpszfoldercomment: *mut i8,
10878 lpinterface: *mut windows_core::GUID,
10879 ulflags: u32,
10880 lppfolder: *mut *mut core::ffi::c_void,
10881 ) -> windows_core::HRESULT {
10882 unsafe {
10883 let this: &Identity =
10884 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10885 IMAPIFolder_Impl::CreateFolder(
10886 this,
10887 core::mem::transmute_copy(&ulfoldertype),
10888 core::mem::transmute_copy(&lpszfoldername),
10889 core::mem::transmute_copy(&lpszfoldercomment),
10890 core::mem::transmute_copy(&lpinterface),
10891 core::mem::transmute_copy(&ulflags),
10892 core::mem::transmute_copy(&lppfolder),
10893 )
10894 .into()
10895 }
10896 }
10897 unsafe extern "system" fn CopyFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10898 this: *mut core::ffi::c_void,
10899 cbentryid: u32,
10900 lpentryid: *mut ENTRYID,
10901 lpinterface: *mut windows_core::GUID,
10902 lpdestfolder: *mut core::ffi::c_void,
10903 lpsznewfoldername: *mut i8,
10904 uluiparam: usize,
10905 lpprogress: *mut core::ffi::c_void,
10906 ulflags: u32,
10907 ) -> windows_core::HRESULT {
10908 unsafe {
10909 let this: &Identity =
10910 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10911 IMAPIFolder_Impl::CopyFolder(
10912 this,
10913 core::mem::transmute_copy(&cbentryid),
10914 core::mem::transmute_copy(&lpentryid),
10915 core::mem::transmute_copy(&lpinterface),
10916 core::mem::transmute_copy(&lpdestfolder),
10917 core::mem::transmute_copy(&lpsznewfoldername),
10918 core::mem::transmute_copy(&uluiparam),
10919 core::mem::transmute_copy(&lpprogress),
10920 core::mem::transmute_copy(&ulflags),
10921 )
10922 .into()
10923 }
10924 }
10925 unsafe extern "system" fn DeleteFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10926 this: *mut core::ffi::c_void,
10927 cbentryid: u32,
10928 lpentryid: *mut ENTRYID,
10929 uluiparam: usize,
10930 lpprogress: *mut core::ffi::c_void,
10931 ulflags: u32,
10932 ) -> windows_core::HRESULT {
10933 unsafe {
10934 let this: &Identity =
10935 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10936 IMAPIFolder_Impl::DeleteFolder(
10937 this,
10938 core::mem::transmute_copy(&cbentryid),
10939 core::mem::transmute_copy(&lpentryid),
10940 core::mem::transmute_copy(&uluiparam),
10941 core::mem::transmute_copy(&lpprogress),
10942 core::mem::transmute_copy(&ulflags),
10943 )
10944 .into()
10945 }
10946 }
10947 unsafe extern "system" fn SetReadFlags<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10948 this: *mut core::ffi::c_void,
10949 lpmsglist: *mut SBinaryArray,
10950 uluiparam: usize,
10951 lpprogress: *mut core::ffi::c_void,
10952 ulflags: u32,
10953 ) -> windows_core::HRESULT {
10954 unsafe {
10955 let this: &Identity =
10956 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10957 IMAPIFolder_Impl::SetReadFlags(
10958 this,
10959 core::mem::transmute_copy(&lpmsglist),
10960 core::mem::transmute_copy(&uluiparam),
10961 core::mem::transmute_copy(&lpprogress),
10962 core::mem::transmute_copy(&ulflags),
10963 )
10964 .into()
10965 }
10966 }
10967 unsafe extern "system" fn GetMessageStatus<
10968 Identity: IMAPIFolder_Impl,
10969 const OFFSET: isize,
10970 >(
10971 this: *mut core::ffi::c_void,
10972 cbentryid: u32,
10973 lpentryid: *mut ENTRYID,
10974 ulflags: u32,
10975 lpulmessagestatus: *mut u32,
10976 ) -> windows_core::HRESULT {
10977 unsafe {
10978 let this: &Identity =
10979 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10980 IMAPIFolder_Impl::GetMessageStatus(
10981 this,
10982 core::mem::transmute_copy(&cbentryid),
10983 core::mem::transmute_copy(&lpentryid),
10984 core::mem::transmute_copy(&ulflags),
10985 core::mem::transmute_copy(&lpulmessagestatus),
10986 )
10987 .into()
10988 }
10989 }
10990 unsafe extern "system" fn SetMessageStatus<
10991 Identity: IMAPIFolder_Impl,
10992 const OFFSET: isize,
10993 >(
10994 this: *mut core::ffi::c_void,
10995 cbentryid: u32,
10996 lpentryid: *mut ENTRYID,
10997 ulnewstatus: u32,
10998 ulnewstatusmask: u32,
10999 lpuloldstatus: *mut u32,
11000 ) -> windows_core::HRESULT {
11001 unsafe {
11002 let this: &Identity =
11003 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11004 IMAPIFolder_Impl::SetMessageStatus(
11005 this,
11006 core::mem::transmute_copy(&cbentryid),
11007 core::mem::transmute_copy(&lpentryid),
11008 core::mem::transmute_copy(&ulnewstatus),
11009 core::mem::transmute_copy(&ulnewstatusmask),
11010 core::mem::transmute_copy(&lpuloldstatus),
11011 )
11012 .into()
11013 }
11014 }
11015 unsafe extern "system" fn SaveContentsSort<
11016 Identity: IMAPIFolder_Impl,
11017 const OFFSET: isize,
11018 >(
11019 this: *mut core::ffi::c_void,
11020 lpsortcriteria: *mut SSortOrderSet,
11021 ulflags: u32,
11022 ) -> windows_core::HRESULT {
11023 unsafe {
11024 let this: &Identity =
11025 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11026 IMAPIFolder_Impl::SaveContentsSort(
11027 this,
11028 core::mem::transmute_copy(&lpsortcriteria),
11029 core::mem::transmute_copy(&ulflags),
11030 )
11031 .into()
11032 }
11033 }
11034 unsafe extern "system" fn EmptyFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
11035 this: *mut core::ffi::c_void,
11036 uluiparam: usize,
11037 lpprogress: *mut core::ffi::c_void,
11038 ulflags: u32,
11039 ) -> windows_core::HRESULT {
11040 unsafe {
11041 let this: &Identity =
11042 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11043 IMAPIFolder_Impl::EmptyFolder(
11044 this,
11045 core::mem::transmute_copy(&uluiparam),
11046 core::mem::transmute_copy(&lpprogress),
11047 core::mem::transmute_copy(&ulflags),
11048 )
11049 .into()
11050 }
11051 }
11052 Self {
11053 base__: IMAPIContainer_Vtbl::new::<Identity, OFFSET>(),
11054 CreateMessage: CreateMessage::<Identity, OFFSET>,
11055 CopyMessages: CopyMessages::<Identity, OFFSET>,
11056 DeleteMessages: DeleteMessages::<Identity, OFFSET>,
11057 CreateFolder: CreateFolder::<Identity, OFFSET>,
11058 CopyFolder: CopyFolder::<Identity, OFFSET>,
11059 DeleteFolder: DeleteFolder::<Identity, OFFSET>,
11060 SetReadFlags: SetReadFlags::<Identity, OFFSET>,
11061 GetMessageStatus: GetMessageStatus::<Identity, OFFSET>,
11062 SetMessageStatus: SetMessageStatus::<Identity, OFFSET>,
11063 SaveContentsSort: SaveContentsSort::<Identity, OFFSET>,
11064 EmptyFolder: EmptyFolder::<Identity, OFFSET>,
11065 }
11066 }
11067 pub fn matches(iid: &windows_core::GUID) -> bool {
11068 iid == &<IMAPIFolder as windows_core::Interface>::IID
11069 || iid == &<IMAPIProp as windows_core::Interface>::IID
11070 || iid == &<IMAPIContainer as windows_core::Interface>::IID
11071 }
11072}
11073impl windows_core::RuntimeName for IMAPIFolder {}
11074pub const IMAPIFolder_CopyFolder: METHODS = METHODS(54i32);
11075pub const IMAPIFolder_CopyMessages: METHODS = METHODS(51i32);
11076pub const IMAPIFolder_CreateFolder: METHODS = METHODS(53i32);
11077pub const IMAPIFolder_CreateMessage: METHODS = METHODS(50i32);
11078pub const IMAPIFolder_DeleteFolder: METHODS = METHODS(55i32);
11079pub const IMAPIFolder_DeleteMessages: METHODS = METHODS(52i32);
11080pub const IMAPIFolder_EmptyFolder: METHODS = METHODS(60i32);
11081pub const IMAPIFolder_GetMessageStatus: METHODS = METHODS(57i32);
11082pub const IMAPIFolder_SaveContentsSort: METHODS = METHODS(59i32);
11083pub const IMAPIFolder_SetMessageStatus: METHODS = METHODS(58i32);
11084pub const IMAPIFolder_SetReadFlags: METHODS = METHODS(56i32);
11085windows_core::imp::define_interface!(
11086 IMAPIForm,
11087 IMAPIForm_Vtbl,
11088 0x00020327_0000_0000_c000_000000000046
11089);
11090windows_core::imp::interface_hierarchy!(IMAPIForm, windows_core::IUnknown);
11091impl IMAPIForm {
11092 pub unsafe fn GetLastError(
11093 &self,
11094 hresult: windows_core::HRESULT,
11095 ulflags: u32,
11096 lppmapierror: *mut *mut MAPIERROR,
11097 ) -> windows_core::Result<()> {
11098 unsafe {
11099 (windows_core::Interface::vtable(self).GetLastError)(
11100 windows_core::Interface::as_raw(self),
11101 hresult,
11102 ulflags,
11103 lppmapierror as _,
11104 )
11105 .ok()
11106 }
11107 }
11108 pub unsafe fn SetViewContext<P0>(&self, pviewcontext: P0) -> windows_core::Result<()>
11109 where
11110 P0: windows_core::Param<IMAPIViewContext>,
11111 {
11112 unsafe {
11113 (windows_core::Interface::vtable(self).SetViewContext)(
11114 windows_core::Interface::as_raw(self),
11115 pviewcontext.param().abi(),
11116 )
11117 .ok()
11118 }
11119 }
11120 pub unsafe fn GetViewContext(&self) -> windows_core::Result<IMAPIViewContext> {
11121 unsafe {
11122 let mut result__ = core::mem::zeroed();
11123 (windows_core::Interface::vtable(self).GetViewContext)(
11124 windows_core::Interface::as_raw(self),
11125 &mut result__,
11126 )
11127 .and_then(|| windows_core::Type::from_abi(result__))
11128 }
11129 }
11130 pub unsafe fn ShutdownForm(&self, ulsaveoptions: u32) -> windows_core::Result<()> {
11131 unsafe {
11132 (windows_core::Interface::vtable(self).ShutdownForm)(
11133 windows_core::Interface::as_raw(self),
11134 ulsaveoptions,
11135 )
11136 .ok()
11137 }
11138 }
11139 pub unsafe fn DoVerb<P1>(
11140 &self,
11141 iverb: i32,
11142 lpviewcontext: P1,
11143 hwndparent: usize,
11144 lprcposrect: *mut windows::Win32::Foundation::RECT,
11145 ) -> windows_core::Result<()>
11146 where
11147 P1: windows_core::Param<IMAPIViewContext>,
11148 {
11149 unsafe {
11150 (windows_core::Interface::vtable(self).DoVerb)(
11151 windows_core::Interface::as_raw(self),
11152 iverb,
11153 lpviewcontext.param().abi(),
11154 hwndparent,
11155 lprcposrect as _,
11156 )
11157 .ok()
11158 }
11159 }
11160 pub unsafe fn Advise<P0>(&self, padvise: P0, pdwstatus: *mut usize) -> windows_core::Result<()>
11161 where
11162 P0: windows_core::Param<IMAPIViewAdviseSink>,
11163 {
11164 unsafe {
11165 (windows_core::Interface::vtable(self).Advise)(
11166 windows_core::Interface::as_raw(self),
11167 padvise.param().abi(),
11168 pdwstatus as _,
11169 )
11170 .ok()
11171 }
11172 }
11173 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
11174 unsafe {
11175 (windows_core::Interface::vtable(self).Unadvise)(
11176 windows_core::Interface::as_raw(self),
11177 ulconnection,
11178 )
11179 .ok()
11180 }
11181 }
11182}
11183#[repr(C)]
11184pub struct IMAPIForm_Vtbl {
11185 pub base__: windows_core::IUnknown_Vtbl,
11186 pub GetLastError: unsafe extern "system" fn(
11187 *mut core::ffi::c_void,
11188 windows_core::HRESULT,
11189 u32,
11190 *mut *mut MAPIERROR,
11191 ) -> windows_core::HRESULT,
11192 pub SetViewContext: unsafe extern "system" fn(
11193 *mut core::ffi::c_void,
11194 *mut core::ffi::c_void,
11195 ) -> windows_core::HRESULT,
11196 pub GetViewContext: unsafe extern "system" fn(
11197 *mut core::ffi::c_void,
11198 *mut *mut core::ffi::c_void,
11199 ) -> windows_core::HRESULT,
11200 pub ShutdownForm:
11201 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11202 pub DoVerb: unsafe extern "system" fn(
11203 *mut core::ffi::c_void,
11204 i32,
11205 *mut core::ffi::c_void,
11206 usize,
11207 *mut windows::Win32::Foundation::RECT,
11208 ) -> windows_core::HRESULT,
11209 pub Advise: unsafe extern "system" fn(
11210 *mut core::ffi::c_void,
11211 *mut core::ffi::c_void,
11212 *mut usize,
11213 ) -> windows_core::HRESULT,
11214 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
11215}
11216pub trait IMAPIForm_Impl: windows_core::IUnknownImpl {
11217 fn GetLastError(
11218 &self,
11219 hresult: windows_core::HRESULT,
11220 ulflags: u32,
11221 lppmapierror: *mut *mut MAPIERROR,
11222 ) -> windows_core::Result<()>;
11223 fn SetViewContext(
11224 &self,
11225 pviewcontext: windows_core::Ref<'_, IMAPIViewContext>,
11226 ) -> windows_core::Result<()>;
11227 fn GetViewContext(&self) -> windows_core::Result<IMAPIViewContext>;
11228 fn ShutdownForm(&self, ulsaveoptions: u32) -> windows_core::Result<()>;
11229 fn DoVerb(
11230 &self,
11231 iverb: i32,
11232 lpviewcontext: windows_core::Ref<'_, IMAPIViewContext>,
11233 hwndparent: usize,
11234 lprcposrect: *mut windows::Win32::Foundation::RECT,
11235 ) -> windows_core::Result<()>;
11236 fn Advise(
11237 &self,
11238 padvise: windows_core::Ref<'_, IMAPIViewAdviseSink>,
11239 pdwstatus: *mut usize,
11240 ) -> windows_core::Result<()>;
11241 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
11242}
11243impl IMAPIForm_Vtbl {
11244 pub const fn new<Identity: IMAPIForm_Impl, const OFFSET: isize>() -> Self {
11245 unsafe extern "system" fn GetLastError<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11246 this: *mut core::ffi::c_void,
11247 hresult: windows_core::HRESULT,
11248 ulflags: u32,
11249 lppmapierror: *mut *mut MAPIERROR,
11250 ) -> windows_core::HRESULT {
11251 unsafe {
11252 let this: &Identity =
11253 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11254 IMAPIForm_Impl::GetLastError(
11255 this,
11256 core::mem::transmute_copy(&hresult),
11257 core::mem::transmute_copy(&ulflags),
11258 core::mem::transmute_copy(&lppmapierror),
11259 )
11260 .into()
11261 }
11262 }
11263 unsafe extern "system" fn SetViewContext<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11264 this: *mut core::ffi::c_void,
11265 pviewcontext: *mut core::ffi::c_void,
11266 ) -> windows_core::HRESULT {
11267 unsafe {
11268 let this: &Identity =
11269 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11270 IMAPIForm_Impl::SetViewContext(this, core::mem::transmute_copy(&pviewcontext))
11271 .into()
11272 }
11273 }
11274 unsafe extern "system" fn GetViewContext<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11275 this: *mut core::ffi::c_void,
11276 ppviewcontext: *mut *mut core::ffi::c_void,
11277 ) -> windows_core::HRESULT {
11278 unsafe {
11279 let this: &Identity =
11280 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11281 match IMAPIForm_Impl::GetViewContext(this) {
11282 Ok(ok__) => {
11283 ppviewcontext.write(core::mem::transmute(ok__));
11284 windows_core::HRESULT(0)
11285 }
11286 Err(err) => err.into(),
11287 }
11288 }
11289 }
11290 unsafe extern "system" fn ShutdownForm<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11291 this: *mut core::ffi::c_void,
11292 ulsaveoptions: u32,
11293 ) -> windows_core::HRESULT {
11294 unsafe {
11295 let this: &Identity =
11296 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11297 IMAPIForm_Impl::ShutdownForm(this, core::mem::transmute_copy(&ulsaveoptions)).into()
11298 }
11299 }
11300 unsafe extern "system" fn DoVerb<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11301 this: *mut core::ffi::c_void,
11302 iverb: i32,
11303 lpviewcontext: *mut core::ffi::c_void,
11304 hwndparent: usize,
11305 lprcposrect: *mut windows::Win32::Foundation::RECT,
11306 ) -> windows_core::HRESULT {
11307 unsafe {
11308 let this: &Identity =
11309 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11310 IMAPIForm_Impl::DoVerb(
11311 this,
11312 core::mem::transmute_copy(&iverb),
11313 core::mem::transmute_copy(&lpviewcontext),
11314 core::mem::transmute_copy(&hwndparent),
11315 core::mem::transmute_copy(&lprcposrect),
11316 )
11317 .into()
11318 }
11319 }
11320 unsafe extern "system" fn Advise<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11321 this: *mut core::ffi::c_void,
11322 padvise: *mut core::ffi::c_void,
11323 pdwstatus: *mut usize,
11324 ) -> windows_core::HRESULT {
11325 unsafe {
11326 let this: &Identity =
11327 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11328 IMAPIForm_Impl::Advise(
11329 this,
11330 core::mem::transmute_copy(&padvise),
11331 core::mem::transmute_copy(&pdwstatus),
11332 )
11333 .into()
11334 }
11335 }
11336 unsafe extern "system" fn Unadvise<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11337 this: *mut core::ffi::c_void,
11338 ulconnection: usize,
11339 ) -> windows_core::HRESULT {
11340 unsafe {
11341 let this: &Identity =
11342 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11343 IMAPIForm_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
11344 }
11345 }
11346 Self {
11347 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11348 GetLastError: GetLastError::<Identity, OFFSET>,
11349 SetViewContext: SetViewContext::<Identity, OFFSET>,
11350 GetViewContext: GetViewContext::<Identity, OFFSET>,
11351 ShutdownForm: ShutdownForm::<Identity, OFFSET>,
11352 DoVerb: DoVerb::<Identity, OFFSET>,
11353 Advise: Advise::<Identity, OFFSET>,
11354 Unadvise: Unadvise::<Identity, OFFSET>,
11355 }
11356 }
11357 pub fn matches(iid: &windows_core::GUID) -> bool {
11358 iid == &<IMAPIForm as windows_core::Interface>::IID
11359 }
11360}
11361impl windows_core::RuntimeName for IMAPIForm {}
11362windows_core::imp::define_interface!(
11363 IMAPIFormAdviseSink,
11364 IMAPIFormAdviseSink_Vtbl,
11365 0x0002032f_0000_0000_c000_000000000046
11366);
11367windows_core::imp::interface_hierarchy!(IMAPIFormAdviseSink, windows_core::IUnknown);
11368impl IMAPIFormAdviseSink {
11369 pub unsafe fn OnChange(&self, uldir: u32) -> windows_core::Result<()> {
11370 unsafe {
11371 (windows_core::Interface::vtable(self).OnChange)(
11372 windows_core::Interface::as_raw(self),
11373 uldir,
11374 )
11375 .ok()
11376 }
11377 }
11378 pub unsafe fn OnActivateNext<P0>(
11379 &self,
11380 lpszmessageclass: P0,
11381 ulmessagestatus: u32,
11382 ulmessageflags: u32,
11383 ) -> windows_core::Result<IPersistMessage>
11384 where
11385 P0: windows_core::Param<windows_core::PCSTR>,
11386 {
11387 unsafe {
11388 let mut result__ = core::mem::zeroed();
11389 (windows_core::Interface::vtable(self).OnActivateNext)(
11390 windows_core::Interface::as_raw(self),
11391 lpszmessageclass.param().abi(),
11392 ulmessagestatus,
11393 ulmessageflags,
11394 &mut result__,
11395 )
11396 .and_then(|| windows_core::Type::from_abi(result__))
11397 }
11398 }
11399}
11400#[repr(C)]
11401pub struct IMAPIFormAdviseSink_Vtbl {
11402 pub base__: windows_core::IUnknown_Vtbl,
11403 pub OnChange: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11404 pub OnActivateNext: unsafe extern "system" fn(
11405 *mut core::ffi::c_void,
11406 windows_core::PCSTR,
11407 u32,
11408 u32,
11409 *mut *mut core::ffi::c_void,
11410 ) -> windows_core::HRESULT,
11411}
11412pub trait IMAPIFormAdviseSink_Impl: windows_core::IUnknownImpl {
11413 fn OnChange(&self, uldir: u32) -> windows_core::Result<()>;
11414 fn OnActivateNext(
11415 &self,
11416 lpszmessageclass: &windows_core::PCSTR,
11417 ulmessagestatus: u32,
11418 ulmessageflags: u32,
11419 ) -> windows_core::Result<IPersistMessage>;
11420}
11421impl IMAPIFormAdviseSink_Vtbl {
11422 pub const fn new<Identity: IMAPIFormAdviseSink_Impl, const OFFSET: isize>() -> Self {
11423 unsafe extern "system" fn OnChange<
11424 Identity: IMAPIFormAdviseSink_Impl,
11425 const OFFSET: isize,
11426 >(
11427 this: *mut core::ffi::c_void,
11428 uldir: u32,
11429 ) -> windows_core::HRESULT {
11430 unsafe {
11431 let this: &Identity =
11432 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11433 IMAPIFormAdviseSink_Impl::OnChange(this, core::mem::transmute_copy(&uldir)).into()
11434 }
11435 }
11436 unsafe extern "system" fn OnActivateNext<
11437 Identity: IMAPIFormAdviseSink_Impl,
11438 const OFFSET: isize,
11439 >(
11440 this: *mut core::ffi::c_void,
11441 lpszmessageclass: windows_core::PCSTR,
11442 ulmessagestatus: u32,
11443 ulmessageflags: u32,
11444 pppersistmessage: *mut *mut core::ffi::c_void,
11445 ) -> windows_core::HRESULT {
11446 unsafe {
11447 let this: &Identity =
11448 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11449 match IMAPIFormAdviseSink_Impl::OnActivateNext(
11450 this,
11451 core::mem::transmute(&lpszmessageclass),
11452 core::mem::transmute_copy(&ulmessagestatus),
11453 core::mem::transmute_copy(&ulmessageflags),
11454 ) {
11455 Ok(ok__) => {
11456 pppersistmessage.write(core::mem::transmute(ok__));
11457 windows_core::HRESULT(0)
11458 }
11459 Err(err) => err.into(),
11460 }
11461 }
11462 }
11463 Self {
11464 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11465 OnChange: OnChange::<Identity, OFFSET>,
11466 OnActivateNext: OnActivateNext::<Identity, OFFSET>,
11467 }
11468 }
11469 pub fn matches(iid: &windows_core::GUID) -> bool {
11470 iid == &<IMAPIFormAdviseSink as windows_core::Interface>::IID
11471 }
11472}
11473impl windows_core::RuntimeName for IMAPIFormAdviseSink {}
11474windows_core::imp::define_interface!(
11475 IMAPIFormContainer,
11476 IMAPIFormContainer_Vtbl,
11477 0x0002032e_0000_0000_c000_000000000046
11478);
11479windows_core::imp::interface_hierarchy!(IMAPIFormContainer, windows_core::IUnknown);
11480impl IMAPIFormContainer {
11481 pub unsafe fn GetLastError(
11482 &self,
11483 hresult: windows_core::HRESULT,
11484 ulflags: u32,
11485 lppmapierror: *mut *mut MAPIERROR,
11486 ) -> windows_core::Result<()> {
11487 unsafe {
11488 (windows_core::Interface::vtable(self).GetLastError)(
11489 windows_core::Interface::as_raw(self),
11490 hresult,
11491 ulflags,
11492 lppmapierror as _,
11493 )
11494 .ok()
11495 }
11496 }
11497 pub unsafe fn InstallForm(
11498 &self,
11499 uluiparam: usize,
11500 ulflags: u32,
11501 szcfgpathname: *mut i8,
11502 ) -> windows_core::Result<()> {
11503 unsafe {
11504 (windows_core::Interface::vtable(self).InstallForm)(
11505 windows_core::Interface::as_raw(self),
11506 uluiparam,
11507 ulflags,
11508 szcfgpathname as _,
11509 )
11510 .ok()
11511 }
11512 }
11513 pub unsafe fn RemoveForm<P0>(&self, szmessageclass: P0) -> windows_core::Result<()>
11514 where
11515 P0: windows_core::Param<windows_core::PCSTR>,
11516 {
11517 unsafe {
11518 (windows_core::Interface::vtable(self).RemoveForm)(
11519 windows_core::Interface::as_raw(self),
11520 szmessageclass.param().abi(),
11521 )
11522 .ok()
11523 }
11524 }
11525 pub unsafe fn ResolveMessageClass<P0>(
11526 &self,
11527 szmessageclass: P0,
11528 ulflags: u32,
11529 ) -> windows_core::Result<IMAPIFormInfo>
11530 where
11531 P0: windows_core::Param<windows_core::PCSTR>,
11532 {
11533 unsafe {
11534 let mut result__ = core::mem::zeroed();
11535 (windows_core::Interface::vtable(self).ResolveMessageClass)(
11536 windows_core::Interface::as_raw(self),
11537 szmessageclass.param().abi(),
11538 ulflags,
11539 &mut result__,
11540 )
11541 .and_then(|| windows_core::Type::from_abi(result__))
11542 }
11543 }
11544 pub unsafe fn ResolveMultipleMessageClasses(
11545 &self,
11546 pmsgclassarray: *mut SMessageClassArray,
11547 ulflags: u32,
11548 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
11549 ) -> windows_core::Result<()> {
11550 unsafe {
11551 (windows_core::Interface::vtable(self).ResolveMultipleMessageClasses)(
11552 windows_core::Interface::as_raw(self),
11553 pmsgclassarray as _,
11554 ulflags,
11555 ppfrminfoarray as _,
11556 )
11557 .ok()
11558 }
11559 }
11560 pub unsafe fn CalcFormPropSet(
11561 &self,
11562 ulflags: u32,
11563 ppresults: *mut *mut SMAPIFormPropArray,
11564 ) -> windows_core::Result<()> {
11565 unsafe {
11566 (windows_core::Interface::vtable(self).CalcFormPropSet)(
11567 windows_core::Interface::as_raw(self),
11568 ulflags,
11569 ppresults as _,
11570 )
11571 .ok()
11572 }
11573 }
11574 pub unsafe fn GetDisplay(
11575 &self,
11576 ulflags: u32,
11577 pszdisplayname: *mut *mut i8,
11578 ) -> windows_core::Result<()> {
11579 unsafe {
11580 (windows_core::Interface::vtable(self).GetDisplay)(
11581 windows_core::Interface::as_raw(self),
11582 ulflags,
11583 pszdisplayname as _,
11584 )
11585 .ok()
11586 }
11587 }
11588}
11589#[repr(C)]
11590pub struct IMAPIFormContainer_Vtbl {
11591 pub base__: windows_core::IUnknown_Vtbl,
11592 pub GetLastError: unsafe extern "system" fn(
11593 *mut core::ffi::c_void,
11594 windows_core::HRESULT,
11595 u32,
11596 *mut *mut MAPIERROR,
11597 ) -> windows_core::HRESULT,
11598 pub InstallForm: unsafe extern "system" fn(
11599 *mut core::ffi::c_void,
11600 usize,
11601 u32,
11602 *mut i8,
11603 ) -> windows_core::HRESULT,
11604 pub RemoveForm: unsafe extern "system" fn(
11605 *mut core::ffi::c_void,
11606 windows_core::PCSTR,
11607 ) -> windows_core::HRESULT,
11608 pub ResolveMessageClass: unsafe extern "system" fn(
11609 *mut core::ffi::c_void,
11610 windows_core::PCSTR,
11611 u32,
11612 *mut *mut core::ffi::c_void,
11613 ) -> windows_core::HRESULT,
11614 pub ResolveMultipleMessageClasses: unsafe extern "system" fn(
11615 *mut core::ffi::c_void,
11616 *mut SMessageClassArray,
11617 u32,
11618 *mut *mut SMAPIFormInfoArray,
11619 ) -> windows_core::HRESULT,
11620 pub CalcFormPropSet: unsafe extern "system" fn(
11621 *mut core::ffi::c_void,
11622 u32,
11623 *mut *mut SMAPIFormPropArray,
11624 ) -> windows_core::HRESULT,
11625 pub GetDisplay: unsafe extern "system" fn(
11626 *mut core::ffi::c_void,
11627 u32,
11628 *mut *mut i8,
11629 ) -> windows_core::HRESULT,
11630}
11631pub trait IMAPIFormContainer_Impl: windows_core::IUnknownImpl {
11632 fn GetLastError(
11633 &self,
11634 hresult: windows_core::HRESULT,
11635 ulflags: u32,
11636 lppmapierror: *mut *mut MAPIERROR,
11637 ) -> windows_core::Result<()>;
11638 fn InstallForm(
11639 &self,
11640 uluiparam: usize,
11641 ulflags: u32,
11642 szcfgpathname: *mut i8,
11643 ) -> windows_core::Result<()>;
11644 fn RemoveForm(&self, szmessageclass: &windows_core::PCSTR) -> windows_core::Result<()>;
11645 fn ResolveMessageClass(
11646 &self,
11647 szmessageclass: &windows_core::PCSTR,
11648 ulflags: u32,
11649 ) -> windows_core::Result<IMAPIFormInfo>;
11650 fn ResolveMultipleMessageClasses(
11651 &self,
11652 pmsgclassarray: *mut SMessageClassArray,
11653 ulflags: u32,
11654 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
11655 ) -> windows_core::Result<()>;
11656 fn CalcFormPropSet(
11657 &self,
11658 ulflags: u32,
11659 ppresults: *mut *mut SMAPIFormPropArray,
11660 ) -> windows_core::Result<()>;
11661 fn GetDisplay(&self, ulflags: u32, pszdisplayname: *mut *mut i8) -> windows_core::Result<()>;
11662}
11663impl IMAPIFormContainer_Vtbl {
11664 pub const fn new<Identity: IMAPIFormContainer_Impl, const OFFSET: isize>() -> Self {
11665 unsafe extern "system" fn GetLastError<
11666 Identity: IMAPIFormContainer_Impl,
11667 const OFFSET: isize,
11668 >(
11669 this: *mut core::ffi::c_void,
11670 hresult: windows_core::HRESULT,
11671 ulflags: u32,
11672 lppmapierror: *mut *mut MAPIERROR,
11673 ) -> windows_core::HRESULT {
11674 unsafe {
11675 let this: &Identity =
11676 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11677 IMAPIFormContainer_Impl::GetLastError(
11678 this,
11679 core::mem::transmute_copy(&hresult),
11680 core::mem::transmute_copy(&ulflags),
11681 core::mem::transmute_copy(&lppmapierror),
11682 )
11683 .into()
11684 }
11685 }
11686 unsafe extern "system" fn InstallForm<
11687 Identity: IMAPIFormContainer_Impl,
11688 const OFFSET: isize,
11689 >(
11690 this: *mut core::ffi::c_void,
11691 uluiparam: usize,
11692 ulflags: u32,
11693 szcfgpathname: *mut i8,
11694 ) -> windows_core::HRESULT {
11695 unsafe {
11696 let this: &Identity =
11697 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11698 IMAPIFormContainer_Impl::InstallForm(
11699 this,
11700 core::mem::transmute_copy(&uluiparam),
11701 core::mem::transmute_copy(&ulflags),
11702 core::mem::transmute_copy(&szcfgpathname),
11703 )
11704 .into()
11705 }
11706 }
11707 unsafe extern "system" fn RemoveForm<
11708 Identity: IMAPIFormContainer_Impl,
11709 const OFFSET: isize,
11710 >(
11711 this: *mut core::ffi::c_void,
11712 szmessageclass: windows_core::PCSTR,
11713 ) -> windows_core::HRESULT {
11714 unsafe {
11715 let this: &Identity =
11716 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11717 IMAPIFormContainer_Impl::RemoveForm(this, core::mem::transmute(&szmessageclass))
11718 .into()
11719 }
11720 }
11721 unsafe extern "system" fn ResolveMessageClass<
11722 Identity: IMAPIFormContainer_Impl,
11723 const OFFSET: isize,
11724 >(
11725 this: *mut core::ffi::c_void,
11726 szmessageclass: windows_core::PCSTR,
11727 ulflags: u32,
11728 pforminfo: *mut *mut core::ffi::c_void,
11729 ) -> windows_core::HRESULT {
11730 unsafe {
11731 let this: &Identity =
11732 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11733 match IMAPIFormContainer_Impl::ResolveMessageClass(
11734 this,
11735 core::mem::transmute(&szmessageclass),
11736 core::mem::transmute_copy(&ulflags),
11737 ) {
11738 Ok(ok__) => {
11739 pforminfo.write(core::mem::transmute(ok__));
11740 windows_core::HRESULT(0)
11741 }
11742 Err(err) => err.into(),
11743 }
11744 }
11745 }
11746 unsafe extern "system" fn ResolveMultipleMessageClasses<
11747 Identity: IMAPIFormContainer_Impl,
11748 const OFFSET: isize,
11749 >(
11750 this: *mut core::ffi::c_void,
11751 pmsgclassarray: *mut SMessageClassArray,
11752 ulflags: u32,
11753 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
11754 ) -> windows_core::HRESULT {
11755 unsafe {
11756 let this: &Identity =
11757 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11758 IMAPIFormContainer_Impl::ResolveMultipleMessageClasses(
11759 this,
11760 core::mem::transmute_copy(&pmsgclassarray),
11761 core::mem::transmute_copy(&ulflags),
11762 core::mem::transmute_copy(&ppfrminfoarray),
11763 )
11764 .into()
11765 }
11766 }
11767 unsafe extern "system" fn CalcFormPropSet<
11768 Identity: IMAPIFormContainer_Impl,
11769 const OFFSET: isize,
11770 >(
11771 this: *mut core::ffi::c_void,
11772 ulflags: u32,
11773 ppresults: *mut *mut SMAPIFormPropArray,
11774 ) -> windows_core::HRESULT {
11775 unsafe {
11776 let this: &Identity =
11777 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11778 IMAPIFormContainer_Impl::CalcFormPropSet(
11779 this,
11780 core::mem::transmute_copy(&ulflags),
11781 core::mem::transmute_copy(&ppresults),
11782 )
11783 .into()
11784 }
11785 }
11786 unsafe extern "system" fn GetDisplay<
11787 Identity: IMAPIFormContainer_Impl,
11788 const OFFSET: isize,
11789 >(
11790 this: *mut core::ffi::c_void,
11791 ulflags: u32,
11792 pszdisplayname: *mut *mut i8,
11793 ) -> windows_core::HRESULT {
11794 unsafe {
11795 let this: &Identity =
11796 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11797 IMAPIFormContainer_Impl::GetDisplay(
11798 this,
11799 core::mem::transmute_copy(&ulflags),
11800 core::mem::transmute_copy(&pszdisplayname),
11801 )
11802 .into()
11803 }
11804 }
11805 Self {
11806 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11807 GetLastError: GetLastError::<Identity, OFFSET>,
11808 InstallForm: InstallForm::<Identity, OFFSET>,
11809 RemoveForm: RemoveForm::<Identity, OFFSET>,
11810 ResolveMessageClass: ResolveMessageClass::<Identity, OFFSET>,
11811 ResolveMultipleMessageClasses: ResolveMultipleMessageClasses::<Identity, OFFSET>,
11812 CalcFormPropSet: CalcFormPropSet::<Identity, OFFSET>,
11813 GetDisplay: GetDisplay::<Identity, OFFSET>,
11814 }
11815 }
11816 pub fn matches(iid: &windows_core::GUID) -> bool {
11817 iid == &<IMAPIFormContainer as windows_core::Interface>::IID
11818 }
11819}
11820impl windows_core::RuntimeName for IMAPIFormContainer {}
11821windows_core::imp::define_interface!(
11822 IMAPIFormFactory,
11823 IMAPIFormFactory_Vtbl,
11824 0x00020350_0000_0000_c000_000000000046
11825);
11826windows_core::imp::interface_hierarchy!(IMAPIFormFactory, windows_core::IUnknown);
11827impl IMAPIFormFactory {
11828 pub unsafe fn GetLastError(
11829 &self,
11830 hresult: windows_core::HRESULT,
11831 ulflags: u32,
11832 lppmapierror: *mut *mut MAPIERROR,
11833 ) -> windows_core::Result<()> {
11834 unsafe {
11835 (windows_core::Interface::vtable(self).GetLastError)(
11836 windows_core::Interface::as_raw(self),
11837 hresult,
11838 ulflags,
11839 lppmapierror as _,
11840 )
11841 .ok()
11842 }
11843 }
11844 pub unsafe fn CreateClassFactory(
11845 &self,
11846 clsidform: *const windows_core::GUID,
11847 ulflags: u32,
11848 ) -> windows_core::Result<windows::Win32::System::Com::IClassFactory> {
11849 unsafe {
11850 let mut result__ = core::mem::zeroed();
11851 (windows_core::Interface::vtable(self).CreateClassFactory)(
11852 windows_core::Interface::as_raw(self),
11853 clsidform,
11854 ulflags,
11855 &mut result__,
11856 )
11857 .and_then(|| windows_core::Type::from_abi(result__))
11858 }
11859 }
11860 pub unsafe fn LockServer(&self, ulflags: u32, flockserver: u32) -> windows_core::Result<()> {
11861 unsafe {
11862 (windows_core::Interface::vtable(self).LockServer)(
11863 windows_core::Interface::as_raw(self),
11864 ulflags,
11865 flockserver,
11866 )
11867 .ok()
11868 }
11869 }
11870}
11871#[repr(C)]
11872pub struct IMAPIFormFactory_Vtbl {
11873 pub base__: windows_core::IUnknown_Vtbl,
11874 pub GetLastError: unsafe extern "system" fn(
11875 *mut core::ffi::c_void,
11876 windows_core::HRESULT,
11877 u32,
11878 *mut *mut MAPIERROR,
11879 ) -> windows_core::HRESULT,
11880 pub CreateClassFactory: unsafe extern "system" fn(
11881 *mut core::ffi::c_void,
11882 *const windows_core::GUID,
11883 u32,
11884 *mut *mut core::ffi::c_void,
11885 ) -> windows_core::HRESULT,
11886 pub LockServer:
11887 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
11888}
11889pub trait IMAPIFormFactory_Impl: windows_core::IUnknownImpl {
11890 fn GetLastError(
11891 &self,
11892 hresult: windows_core::HRESULT,
11893 ulflags: u32,
11894 lppmapierror: *mut *mut MAPIERROR,
11895 ) -> windows_core::Result<()>;
11896 fn CreateClassFactory(
11897 &self,
11898 clsidform: *const windows_core::GUID,
11899 ulflags: u32,
11900 ) -> windows_core::Result<windows::Win32::System::Com::IClassFactory>;
11901 fn LockServer(&self, ulflags: u32, flockserver: u32) -> windows_core::Result<()>;
11902}
11903impl IMAPIFormFactory_Vtbl {
11904 pub const fn new<Identity: IMAPIFormFactory_Impl, const OFFSET: isize>() -> Self {
11905 unsafe extern "system" fn GetLastError<
11906 Identity: IMAPIFormFactory_Impl,
11907 const OFFSET: isize,
11908 >(
11909 this: *mut core::ffi::c_void,
11910 hresult: windows_core::HRESULT,
11911 ulflags: u32,
11912 lppmapierror: *mut *mut MAPIERROR,
11913 ) -> windows_core::HRESULT {
11914 unsafe {
11915 let this: &Identity =
11916 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11917 IMAPIFormFactory_Impl::GetLastError(
11918 this,
11919 core::mem::transmute_copy(&hresult),
11920 core::mem::transmute_copy(&ulflags),
11921 core::mem::transmute_copy(&lppmapierror),
11922 )
11923 .into()
11924 }
11925 }
11926 unsafe extern "system" fn CreateClassFactory<
11927 Identity: IMAPIFormFactory_Impl,
11928 const OFFSET: isize,
11929 >(
11930 this: *mut core::ffi::c_void,
11931 clsidform: *const windows_core::GUID,
11932 ulflags: u32,
11933 lppclassfactory: *mut *mut core::ffi::c_void,
11934 ) -> windows_core::HRESULT {
11935 unsafe {
11936 let this: &Identity =
11937 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11938 match IMAPIFormFactory_Impl::CreateClassFactory(
11939 this,
11940 core::mem::transmute_copy(&clsidform),
11941 core::mem::transmute_copy(&ulflags),
11942 ) {
11943 Ok(ok__) => {
11944 lppclassfactory.write(core::mem::transmute(ok__));
11945 windows_core::HRESULT(0)
11946 }
11947 Err(err) => err.into(),
11948 }
11949 }
11950 }
11951 unsafe extern "system" fn LockServer<
11952 Identity: IMAPIFormFactory_Impl,
11953 const OFFSET: isize,
11954 >(
11955 this: *mut core::ffi::c_void,
11956 ulflags: u32,
11957 flockserver: u32,
11958 ) -> windows_core::HRESULT {
11959 unsafe {
11960 let this: &Identity =
11961 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11962 IMAPIFormFactory_Impl::LockServer(
11963 this,
11964 core::mem::transmute_copy(&ulflags),
11965 core::mem::transmute_copy(&flockserver),
11966 )
11967 .into()
11968 }
11969 }
11970 Self {
11971 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11972 GetLastError: GetLastError::<Identity, OFFSET>,
11973 CreateClassFactory: CreateClassFactory::<Identity, OFFSET>,
11974 LockServer: LockServer::<Identity, OFFSET>,
11975 }
11976 }
11977 pub fn matches(iid: &windows_core::GUID) -> bool {
11978 iid == &<IMAPIFormFactory as windows_core::Interface>::IID
11979 }
11980}
11981impl windows_core::RuntimeName for IMAPIFormFactory {}
11982windows_core::imp::define_interface!(
11983 IMAPIFormInfo,
11984 IMAPIFormInfo_Vtbl,
11985 0x00020324_0000_0000_c000_000000000046
11986);
11987impl core::ops::Deref for IMAPIFormInfo {
11988 type Target = IMAPIProp;
11989 fn deref(&self) -> &Self::Target {
11990 unsafe { core::mem::transmute(self) }
11991 }
11992}
11993windows_core::imp::interface_hierarchy!(IMAPIFormInfo, windows_core::IUnknown, IMAPIProp);
11994impl IMAPIFormInfo {
11995 pub unsafe fn CalcFormPropSet(
11996 &self,
11997 ulflags: u32,
11998 ppformproparray: *mut *mut SMAPIFormPropArray,
11999 ) -> windows_core::Result<()> {
12000 unsafe {
12001 (windows_core::Interface::vtable(self).CalcFormPropSet)(
12002 windows_core::Interface::as_raw(self),
12003 ulflags,
12004 ppformproparray as _,
12005 )
12006 .ok()
12007 }
12008 }
12009 pub unsafe fn CalcVerbSet(
12010 &self,
12011 ulflags: u32,
12012 ppmapiverbarray: *mut *mut SMAPIVerbArray,
12013 ) -> windows_core::Result<()> {
12014 unsafe {
12015 (windows_core::Interface::vtable(self).CalcVerbSet)(
12016 windows_core::Interface::as_raw(self),
12017 ulflags,
12018 ppmapiverbarray as _,
12019 )
12020 .ok()
12021 }
12022 }
12023 pub unsafe fn MakeIconFromBinary(
12024 &self,
12025 npropid: u32,
12026 phicon: *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12027 ) -> windows_core::Result<()> {
12028 unsafe {
12029 (windows_core::Interface::vtable(self).MakeIconFromBinary)(
12030 windows_core::Interface::as_raw(self),
12031 npropid,
12032 phicon as _,
12033 )
12034 .ok()
12035 }
12036 }
12037 pub unsafe fn SaveForm(&self, szfilename: *mut i8) -> windows_core::Result<()> {
12038 unsafe {
12039 (windows_core::Interface::vtable(self).SaveForm)(
12040 windows_core::Interface::as_raw(self),
12041 szfilename as _,
12042 )
12043 .ok()
12044 }
12045 }
12046 pub unsafe fn OpenFormContainer(&self) -> windows_core::Result<IMAPIFormContainer> {
12047 unsafe {
12048 let mut result__ = core::mem::zeroed();
12049 (windows_core::Interface::vtable(self).OpenFormContainer)(
12050 windows_core::Interface::as_raw(self),
12051 &mut result__,
12052 )
12053 .and_then(|| windows_core::Type::from_abi(result__))
12054 }
12055 }
12056}
12057#[repr(C)]
12058pub struct IMAPIFormInfo_Vtbl {
12059 pub base__: IMAPIProp_Vtbl,
12060 pub CalcFormPropSet: unsafe extern "system" fn(
12061 *mut core::ffi::c_void,
12062 u32,
12063 *mut *mut SMAPIFormPropArray,
12064 ) -> windows_core::HRESULT,
12065 pub CalcVerbSet: unsafe extern "system" fn(
12066 *mut core::ffi::c_void,
12067 u32,
12068 *mut *mut SMAPIVerbArray,
12069 ) -> windows_core::HRESULT,
12070 pub MakeIconFromBinary: unsafe extern "system" fn(
12071 *mut core::ffi::c_void,
12072 u32,
12073 *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12074 ) -> windows_core::HRESULT,
12075 pub SaveForm:
12076 unsafe extern "system" fn(*mut core::ffi::c_void, *mut i8) -> windows_core::HRESULT,
12077 pub OpenFormContainer: unsafe extern "system" fn(
12078 *mut core::ffi::c_void,
12079 *mut *mut core::ffi::c_void,
12080 ) -> windows_core::HRESULT,
12081}
12082pub trait IMAPIFormInfo_Impl: IMAPIProp_Impl {
12083 fn CalcFormPropSet(
12084 &self,
12085 ulflags: u32,
12086 ppformproparray: *mut *mut SMAPIFormPropArray,
12087 ) -> windows_core::Result<()>;
12088 fn CalcVerbSet(
12089 &self,
12090 ulflags: u32,
12091 ppmapiverbarray: *mut *mut SMAPIVerbArray,
12092 ) -> windows_core::Result<()>;
12093 fn MakeIconFromBinary(
12094 &self,
12095 npropid: u32,
12096 phicon: *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12097 ) -> windows_core::Result<()>;
12098 fn SaveForm(&self, szfilename: *mut i8) -> windows_core::Result<()>;
12099 fn OpenFormContainer(&self) -> windows_core::Result<IMAPIFormContainer>;
12100}
12101impl IMAPIFormInfo_Vtbl {
12102 pub const fn new<Identity: IMAPIFormInfo_Impl, const OFFSET: isize>() -> Self {
12103 unsafe extern "system" fn CalcFormPropSet<
12104 Identity: IMAPIFormInfo_Impl,
12105 const OFFSET: isize,
12106 >(
12107 this: *mut core::ffi::c_void,
12108 ulflags: u32,
12109 ppformproparray: *mut *mut SMAPIFormPropArray,
12110 ) -> windows_core::HRESULT {
12111 unsafe {
12112 let this: &Identity =
12113 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12114 IMAPIFormInfo_Impl::CalcFormPropSet(
12115 this,
12116 core::mem::transmute_copy(&ulflags),
12117 core::mem::transmute_copy(&ppformproparray),
12118 )
12119 .into()
12120 }
12121 }
12122 unsafe extern "system" fn CalcVerbSet<Identity: IMAPIFormInfo_Impl, const OFFSET: isize>(
12123 this: *mut core::ffi::c_void,
12124 ulflags: u32,
12125 ppmapiverbarray: *mut *mut SMAPIVerbArray,
12126 ) -> windows_core::HRESULT {
12127 unsafe {
12128 let this: &Identity =
12129 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12130 IMAPIFormInfo_Impl::CalcVerbSet(
12131 this,
12132 core::mem::transmute_copy(&ulflags),
12133 core::mem::transmute_copy(&ppmapiverbarray),
12134 )
12135 .into()
12136 }
12137 }
12138 unsafe extern "system" fn MakeIconFromBinary<
12139 Identity: IMAPIFormInfo_Impl,
12140 const OFFSET: isize,
12141 >(
12142 this: *mut core::ffi::c_void,
12143 npropid: u32,
12144 phicon: *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12145 ) -> windows_core::HRESULT {
12146 unsafe {
12147 let this: &Identity =
12148 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12149 IMAPIFormInfo_Impl::MakeIconFromBinary(
12150 this,
12151 core::mem::transmute_copy(&npropid),
12152 core::mem::transmute_copy(&phicon),
12153 )
12154 .into()
12155 }
12156 }
12157 unsafe extern "system" fn SaveForm<Identity: IMAPIFormInfo_Impl, const OFFSET: isize>(
12158 this: *mut core::ffi::c_void,
12159 szfilename: *mut i8,
12160 ) -> windows_core::HRESULT {
12161 unsafe {
12162 let this: &Identity =
12163 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12164 IMAPIFormInfo_Impl::SaveForm(this, core::mem::transmute_copy(&szfilename)).into()
12165 }
12166 }
12167 unsafe extern "system" fn OpenFormContainer<
12168 Identity: IMAPIFormInfo_Impl,
12169 const OFFSET: isize,
12170 >(
12171 this: *mut core::ffi::c_void,
12172 ppformcontainer: *mut *mut core::ffi::c_void,
12173 ) -> windows_core::HRESULT {
12174 unsafe {
12175 let this: &Identity =
12176 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12177 match IMAPIFormInfo_Impl::OpenFormContainer(this) {
12178 Ok(ok__) => {
12179 ppformcontainer.write(core::mem::transmute(ok__));
12180 windows_core::HRESULT(0)
12181 }
12182 Err(err) => err.into(),
12183 }
12184 }
12185 }
12186 Self {
12187 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
12188 CalcFormPropSet: CalcFormPropSet::<Identity, OFFSET>,
12189 CalcVerbSet: CalcVerbSet::<Identity, OFFSET>,
12190 MakeIconFromBinary: MakeIconFromBinary::<Identity, OFFSET>,
12191 SaveForm: SaveForm::<Identity, OFFSET>,
12192 OpenFormContainer: OpenFormContainer::<Identity, OFFSET>,
12193 }
12194 }
12195 pub fn matches(iid: &windows_core::GUID) -> bool {
12196 iid == &<IMAPIFormInfo as windows_core::Interface>::IID
12197 || iid == &<IMAPIProp as windows_core::Interface>::IID
12198 }
12199}
12200impl windows_core::RuntimeName for IMAPIFormInfo {}
12201windows_core::imp::define_interface!(
12202 IMAPIFormMgr,
12203 IMAPIFormMgr_Vtbl,
12204 0x00020322_0000_0000_c000_000000000046
12205);
12206windows_core::imp::interface_hierarchy!(IMAPIFormMgr, windows_core::IUnknown);
12207impl IMAPIFormMgr {
12208 pub unsafe fn GetLastError(
12209 &self,
12210 hresult: windows_core::HRESULT,
12211 ulflags: u32,
12212 lppmapierror: *mut *mut MAPIERROR,
12213 ) -> windows_core::Result<()> {
12214 unsafe {
12215 (windows_core::Interface::vtable(self).GetLastError)(
12216 windows_core::Interface::as_raw(self),
12217 hresult,
12218 ulflags,
12219 lppmapierror as _,
12220 )
12221 .ok()
12222 }
12223 }
12224 pub unsafe fn LoadForm<P2, P5, P6, P7, P8>(
12225 &self,
12226 uluiparam: usize,
12227 ulflags: u32,
12228 lpszmessageclass: P2,
12229 ulmessagestatus: u32,
12230 ulmessageflags: u32,
12231 pfolderfocus: P5,
12232 pmessagesite: P6,
12233 pmsg: P7,
12234 pviewcontext: P8,
12235 riid: *const windows_core::GUID,
12236 ppvobj: *mut *mut core::ffi::c_void,
12237 ) -> windows_core::Result<()>
12238 where
12239 P2: windows_core::Param<windows_core::PCSTR>,
12240 P5: windows_core::Param<IMAPIFolder>,
12241 P6: windows_core::Param<IMAPIMessageSite>,
12242 P7: windows_core::Param<IMessage>,
12243 P8: windows_core::Param<IMAPIViewContext>,
12244 {
12245 unsafe {
12246 (windows_core::Interface::vtable(self).LoadForm)(
12247 windows_core::Interface::as_raw(self),
12248 uluiparam,
12249 ulflags,
12250 lpszmessageclass.param().abi(),
12251 ulmessagestatus,
12252 ulmessageflags,
12253 pfolderfocus.param().abi(),
12254 pmessagesite.param().abi(),
12255 pmsg.param().abi(),
12256 pviewcontext.param().abi(),
12257 riid,
12258 ppvobj as _,
12259 )
12260 .ok()
12261 }
12262 }
12263 pub unsafe fn ResolveMessageClass<P0, P2>(
12264 &self,
12265 szmsgclass: P0,
12266 ulflags: u32,
12267 pfolderfocus: P2,
12268 ) -> windows_core::Result<IMAPIFormInfo>
12269 where
12270 P0: windows_core::Param<windows_core::PCSTR>,
12271 P2: windows_core::Param<IMAPIFolder>,
12272 {
12273 unsafe {
12274 let mut result__ = core::mem::zeroed();
12275 (windows_core::Interface::vtable(self).ResolveMessageClass)(
12276 windows_core::Interface::as_raw(self),
12277 szmsgclass.param().abi(),
12278 ulflags,
12279 pfolderfocus.param().abi(),
12280 &mut result__,
12281 )
12282 .and_then(|| windows_core::Type::from_abi(result__))
12283 }
12284 }
12285 pub unsafe fn ResolveMultipleMessageClasses<P2>(
12286 &self,
12287 pmsgclasses: *mut SMessageClassArray,
12288 ulflags: u32,
12289 pfolderfocus: P2,
12290 pfrminfoarray: *mut *mut SMAPIFormInfoArray,
12291 ) -> windows_core::Result<()>
12292 where
12293 P2: windows_core::Param<IMAPIFolder>,
12294 {
12295 unsafe {
12296 (windows_core::Interface::vtable(self).ResolveMultipleMessageClasses)(
12297 windows_core::Interface::as_raw(self),
12298 pmsgclasses as _,
12299 ulflags,
12300 pfolderfocus.param().abi(),
12301 pfrminfoarray as _,
12302 )
12303 .ok()
12304 }
12305 }
12306 pub unsafe fn CalcFormPropSet(
12307 &self,
12308 pfrminfoarray: *mut SMAPIFormInfoArray,
12309 ulflags: u32,
12310 ppresults: *mut *mut SMAPIFormPropArray,
12311 ) -> windows_core::Result<()> {
12312 unsafe {
12313 (windows_core::Interface::vtable(self).CalcFormPropSet)(
12314 windows_core::Interface::as_raw(self),
12315 core::mem::transmute(pfrminfoarray),
12316 ulflags,
12317 ppresults as _,
12318 )
12319 .ok()
12320 }
12321 }
12322 pub unsafe fn CreateForm<P2>(
12323 &self,
12324 uluiparam: usize,
12325 ulflags: u32,
12326 pfrminfotoactivate: P2,
12327 refiidtoask: *const windows_core::GUID,
12328 ppvobj: *mut *mut core::ffi::c_void,
12329 ) -> windows_core::Result<()>
12330 where
12331 P2: windows_core::Param<IMAPIFormInfo>,
12332 {
12333 unsafe {
12334 (windows_core::Interface::vtable(self).CreateForm)(
12335 windows_core::Interface::as_raw(self),
12336 uluiparam,
12337 ulflags,
12338 pfrminfotoactivate.param().abi(),
12339 refiidtoask,
12340 ppvobj as _,
12341 )
12342 .ok()
12343 }
12344 }
12345 pub unsafe fn SelectForm<P3>(
12346 &self,
12347 uluiparam: usize,
12348 ulflags: u32,
12349 psztitle: *mut i8,
12350 pfld: P3,
12351 ppfrminforeturned: *mut Option<IMAPIFormInfo>,
12352 ) -> windows_core::Result<()>
12353 where
12354 P3: windows_core::Param<IMAPIFolder>,
12355 {
12356 unsafe {
12357 (windows_core::Interface::vtable(self).SelectForm)(
12358 windows_core::Interface::as_raw(self),
12359 uluiparam,
12360 ulflags,
12361 psztitle as _,
12362 pfld.param().abi(),
12363 core::mem::transmute(ppfrminforeturned),
12364 )
12365 .ok()
12366 }
12367 }
12368 pub unsafe fn SelectMultipleForms<P3>(
12369 &self,
12370 uluiparam: usize,
12371 ulflags: u32,
12372 psztitle: *mut i8,
12373 pfld: P3,
12374 pfrminfoarray: *mut SMAPIFormInfoArray,
12375 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
12376 ) -> windows_core::Result<()>
12377 where
12378 P3: windows_core::Param<IMAPIFolder>,
12379 {
12380 unsafe {
12381 (windows_core::Interface::vtable(self).SelectMultipleForms)(
12382 windows_core::Interface::as_raw(self),
12383 uluiparam,
12384 ulflags,
12385 psztitle as _,
12386 pfld.param().abi(),
12387 core::mem::transmute(pfrminfoarray),
12388 ppfrminfoarray as _,
12389 )
12390 .ok()
12391 }
12392 }
12393 pub unsafe fn SelectFormContainer(
12394 &self,
12395 uluiparam: usize,
12396 ulflags: u32,
12397 ) -> windows_core::Result<IMAPIFormContainer> {
12398 unsafe {
12399 let mut result__ = core::mem::zeroed();
12400 (windows_core::Interface::vtable(self).SelectFormContainer)(
12401 windows_core::Interface::as_raw(self),
12402 uluiparam,
12403 ulflags,
12404 &mut result__,
12405 )
12406 .and_then(|| windows_core::Type::from_abi(result__))
12407 }
12408 }
12409 pub unsafe fn OpenFormContainer<P1>(
12410 &self,
12411 hfrmreg: u32,
12412 lpunk: P1,
12413 ) -> windows_core::Result<IMAPIFormContainer>
12414 where
12415 P1: windows_core::Param<windows_core::IUnknown>,
12416 {
12417 unsafe {
12418 let mut result__ = core::mem::zeroed();
12419 (windows_core::Interface::vtable(self).OpenFormContainer)(
12420 windows_core::Interface::as_raw(self),
12421 hfrmreg,
12422 lpunk.param().abi(),
12423 &mut result__,
12424 )
12425 .and_then(|| windows_core::Type::from_abi(result__))
12426 }
12427 }
12428 pub unsafe fn PrepareForm<P2>(
12429 &self,
12430 uluiparam: usize,
12431 ulflags: u32,
12432 pfrminfo: P2,
12433 ) -> windows_core::Result<()>
12434 where
12435 P2: windows_core::Param<IMAPIFormInfo>,
12436 {
12437 unsafe {
12438 (windows_core::Interface::vtable(self).PrepareForm)(
12439 windows_core::Interface::as_raw(self),
12440 uluiparam,
12441 ulflags,
12442 pfrminfo.param().abi(),
12443 )
12444 .ok()
12445 }
12446 }
12447 pub unsafe fn IsInConflict<P2, P3>(
12448 &self,
12449 ulmessageflags: u32,
12450 ulmessagestatus: u32,
12451 szmessageclass: P2,
12452 pfolderfocus: P3,
12453 ) -> windows_core::Result<()>
12454 where
12455 P2: windows_core::Param<windows_core::PCSTR>,
12456 P3: windows_core::Param<IMAPIFolder>,
12457 {
12458 unsafe {
12459 (windows_core::Interface::vtable(self).IsInConflict)(
12460 windows_core::Interface::as_raw(self),
12461 ulmessageflags,
12462 ulmessagestatus,
12463 szmessageclass.param().abi(),
12464 pfolderfocus.param().abi(),
12465 )
12466 .ok()
12467 }
12468 }
12469}
12470#[repr(C)]
12471pub struct IMAPIFormMgr_Vtbl {
12472 pub base__: windows_core::IUnknown_Vtbl,
12473 pub GetLastError: unsafe extern "system" fn(
12474 *mut core::ffi::c_void,
12475 windows_core::HRESULT,
12476 u32,
12477 *mut *mut MAPIERROR,
12478 ) -> windows_core::HRESULT,
12479 pub LoadForm: unsafe extern "system" fn(
12480 *mut core::ffi::c_void,
12481 usize,
12482 u32,
12483 windows_core::PCSTR,
12484 u32,
12485 u32,
12486 *mut core::ffi::c_void,
12487 *mut core::ffi::c_void,
12488 *mut core::ffi::c_void,
12489 *mut core::ffi::c_void,
12490 *const windows_core::GUID,
12491 *mut *mut core::ffi::c_void,
12492 ) -> windows_core::HRESULT,
12493 pub ResolveMessageClass: unsafe extern "system" fn(
12494 *mut core::ffi::c_void,
12495 windows_core::PCSTR,
12496 u32,
12497 *mut core::ffi::c_void,
12498 *mut *mut core::ffi::c_void,
12499 ) -> windows_core::HRESULT,
12500 pub ResolveMultipleMessageClasses: unsafe extern "system" fn(
12501 *mut core::ffi::c_void,
12502 *mut SMessageClassArray,
12503 u32,
12504 *mut core::ffi::c_void,
12505 *mut *mut SMAPIFormInfoArray,
12506 ) -> windows_core::HRESULT,
12507 pub CalcFormPropSet: unsafe extern "system" fn(
12508 *mut core::ffi::c_void,
12509 *mut SMAPIFormInfoArray,
12510 u32,
12511 *mut *mut SMAPIFormPropArray,
12512 ) -> windows_core::HRESULT,
12513 pub CreateForm: unsafe extern "system" fn(
12514 *mut core::ffi::c_void,
12515 usize,
12516 u32,
12517 *mut core::ffi::c_void,
12518 *const windows_core::GUID,
12519 *mut *mut core::ffi::c_void,
12520 ) -> windows_core::HRESULT,
12521 pub SelectForm: unsafe extern "system" fn(
12522 *mut core::ffi::c_void,
12523 usize,
12524 u32,
12525 *mut i8,
12526 *mut core::ffi::c_void,
12527 *mut *mut core::ffi::c_void,
12528 ) -> windows_core::HRESULT,
12529 pub SelectMultipleForms: unsafe extern "system" fn(
12530 *mut core::ffi::c_void,
12531 usize,
12532 u32,
12533 *mut i8,
12534 *mut core::ffi::c_void,
12535 *mut SMAPIFormInfoArray,
12536 *mut *mut SMAPIFormInfoArray,
12537 ) -> windows_core::HRESULT,
12538 pub SelectFormContainer: unsafe extern "system" fn(
12539 *mut core::ffi::c_void,
12540 usize,
12541 u32,
12542 *mut *mut core::ffi::c_void,
12543 ) -> windows_core::HRESULT,
12544 pub OpenFormContainer: unsafe extern "system" fn(
12545 *mut core::ffi::c_void,
12546 u32,
12547 *mut core::ffi::c_void,
12548 *mut *mut core::ffi::c_void,
12549 ) -> windows_core::HRESULT,
12550 pub PrepareForm: unsafe extern "system" fn(
12551 *mut core::ffi::c_void,
12552 usize,
12553 u32,
12554 *mut core::ffi::c_void,
12555 ) -> windows_core::HRESULT,
12556 pub IsInConflict: unsafe extern "system" fn(
12557 *mut core::ffi::c_void,
12558 u32,
12559 u32,
12560 windows_core::PCSTR,
12561 *mut core::ffi::c_void,
12562 ) -> windows_core::HRESULT,
12563}
12564pub trait IMAPIFormMgr_Impl: windows_core::IUnknownImpl {
12565 fn GetLastError(
12566 &self,
12567 hresult: windows_core::HRESULT,
12568 ulflags: u32,
12569 lppmapierror: *mut *mut MAPIERROR,
12570 ) -> windows_core::Result<()>;
12571 fn LoadForm(
12572 &self,
12573 uluiparam: usize,
12574 ulflags: u32,
12575 lpszmessageclass: &windows_core::PCSTR,
12576 ulmessagestatus: u32,
12577 ulmessageflags: u32,
12578 pfolderfocus: windows_core::Ref<'_, IMAPIFolder>,
12579 pmessagesite: windows_core::Ref<'_, IMAPIMessageSite>,
12580 pmsg: windows_core::Ref<'_, IMessage>,
12581 pviewcontext: windows_core::Ref<'_, IMAPIViewContext>,
12582 riid: *const windows_core::GUID,
12583 ppvobj: *mut *mut core::ffi::c_void,
12584 ) -> windows_core::Result<()>;
12585 fn ResolveMessageClass(
12586 &self,
12587 szmsgclass: &windows_core::PCSTR,
12588 ulflags: u32,
12589 pfolderfocus: windows_core::Ref<'_, IMAPIFolder>,
12590 ) -> windows_core::Result<IMAPIFormInfo>;
12591 fn ResolveMultipleMessageClasses(
12592 &self,
12593 pmsgclasses: *mut SMessageClassArray,
12594 ulflags: u32,
12595 pfolderfocus: windows_core::Ref<'_, IMAPIFolder>,
12596 pfrminfoarray: *mut *mut SMAPIFormInfoArray,
12597 ) -> windows_core::Result<()>;
12598 fn CalcFormPropSet(
12599 &self,
12600 pfrminfoarray: *mut SMAPIFormInfoArray,
12601 ulflags: u32,
12602 ppresults: *mut *mut SMAPIFormPropArray,
12603 ) -> windows_core::Result<()>;
12604 fn CreateForm(
12605 &self,
12606 uluiparam: usize,
12607 ulflags: u32,
12608 pfrminfotoactivate: windows_core::Ref<'_, IMAPIFormInfo>,
12609 refiidtoask: *const windows_core::GUID,
12610 ppvobj: *mut *mut core::ffi::c_void,
12611 ) -> windows_core::Result<()>;
12612 fn SelectForm(
12613 &self,
12614 uluiparam: usize,
12615 ulflags: u32,
12616 psztitle: *mut i8,
12617 pfld: windows_core::Ref<'_, IMAPIFolder>,
12618 ppfrminforeturned: windows_core::OutRef<'_, IMAPIFormInfo>,
12619 ) -> windows_core::Result<()>;
12620 fn SelectMultipleForms(
12621 &self,
12622 uluiparam: usize,
12623 ulflags: u32,
12624 psztitle: *mut i8,
12625 pfld: windows_core::Ref<'_, IMAPIFolder>,
12626 pfrminfoarray: *mut SMAPIFormInfoArray,
12627 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
12628 ) -> windows_core::Result<()>;
12629 fn SelectFormContainer(
12630 &self,
12631 uluiparam: usize,
12632 ulflags: u32,
12633 ) -> windows_core::Result<IMAPIFormContainer>;
12634 fn OpenFormContainer(
12635 &self,
12636 hfrmreg: u32,
12637 lpunk: windows_core::Ref<'_, windows_core::IUnknown>,
12638 ) -> windows_core::Result<IMAPIFormContainer>;
12639 fn PrepareForm(
12640 &self,
12641 uluiparam: usize,
12642 ulflags: u32,
12643 pfrminfo: windows_core::Ref<'_, IMAPIFormInfo>,
12644 ) -> windows_core::Result<()>;
12645 fn IsInConflict(
12646 &self,
12647 ulmessageflags: u32,
12648 ulmessagestatus: u32,
12649 szmessageclass: &windows_core::PCSTR,
12650 pfolderfocus: windows_core::Ref<'_, IMAPIFolder>,
12651 ) -> windows_core::Result<()>;
12652}
12653impl IMAPIFormMgr_Vtbl {
12654 pub const fn new<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>() -> Self {
12655 unsafe extern "system" fn GetLastError<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12656 this: *mut core::ffi::c_void,
12657 hresult: windows_core::HRESULT,
12658 ulflags: u32,
12659 lppmapierror: *mut *mut MAPIERROR,
12660 ) -> windows_core::HRESULT {
12661 unsafe {
12662 let this: &Identity =
12663 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12664 IMAPIFormMgr_Impl::GetLastError(
12665 this,
12666 core::mem::transmute_copy(&hresult),
12667 core::mem::transmute_copy(&ulflags),
12668 core::mem::transmute_copy(&lppmapierror),
12669 )
12670 .into()
12671 }
12672 }
12673 unsafe extern "system" fn LoadForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12674 this: *mut core::ffi::c_void,
12675 uluiparam: usize,
12676 ulflags: u32,
12677 lpszmessageclass: windows_core::PCSTR,
12678 ulmessagestatus: u32,
12679 ulmessageflags: u32,
12680 pfolderfocus: *mut core::ffi::c_void,
12681 pmessagesite: *mut core::ffi::c_void,
12682 pmsg: *mut core::ffi::c_void,
12683 pviewcontext: *mut core::ffi::c_void,
12684 riid: *const windows_core::GUID,
12685 ppvobj: *mut *mut core::ffi::c_void,
12686 ) -> windows_core::HRESULT {
12687 unsafe {
12688 let this: &Identity =
12689 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12690 IMAPIFormMgr_Impl::LoadForm(
12691 this,
12692 core::mem::transmute_copy(&uluiparam),
12693 core::mem::transmute_copy(&ulflags),
12694 core::mem::transmute(&lpszmessageclass),
12695 core::mem::transmute_copy(&ulmessagestatus),
12696 core::mem::transmute_copy(&ulmessageflags),
12697 core::mem::transmute_copy(&pfolderfocus),
12698 core::mem::transmute_copy(&pmessagesite),
12699 core::mem::transmute_copy(&pmsg),
12700 core::mem::transmute_copy(&pviewcontext),
12701 core::mem::transmute_copy(&riid),
12702 core::mem::transmute_copy(&ppvobj),
12703 )
12704 .into()
12705 }
12706 }
12707 unsafe extern "system" fn ResolveMessageClass<
12708 Identity: IMAPIFormMgr_Impl,
12709 const OFFSET: isize,
12710 >(
12711 this: *mut core::ffi::c_void,
12712 szmsgclass: windows_core::PCSTR,
12713 ulflags: u32,
12714 pfolderfocus: *mut core::ffi::c_void,
12715 ppresult: *mut *mut core::ffi::c_void,
12716 ) -> windows_core::HRESULT {
12717 unsafe {
12718 let this: &Identity =
12719 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12720 match IMAPIFormMgr_Impl::ResolveMessageClass(
12721 this,
12722 core::mem::transmute(&szmsgclass),
12723 core::mem::transmute_copy(&ulflags),
12724 core::mem::transmute_copy(&pfolderfocus),
12725 ) {
12726 Ok(ok__) => {
12727 ppresult.write(core::mem::transmute(ok__));
12728 windows_core::HRESULT(0)
12729 }
12730 Err(err) => err.into(),
12731 }
12732 }
12733 }
12734 unsafe extern "system" fn ResolveMultipleMessageClasses<
12735 Identity: IMAPIFormMgr_Impl,
12736 const OFFSET: isize,
12737 >(
12738 this: *mut core::ffi::c_void,
12739 pmsgclasses: *mut SMessageClassArray,
12740 ulflags: u32,
12741 pfolderfocus: *mut core::ffi::c_void,
12742 pfrminfoarray: *mut *mut SMAPIFormInfoArray,
12743 ) -> windows_core::HRESULT {
12744 unsafe {
12745 let this: &Identity =
12746 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12747 IMAPIFormMgr_Impl::ResolveMultipleMessageClasses(
12748 this,
12749 core::mem::transmute_copy(&pmsgclasses),
12750 core::mem::transmute_copy(&ulflags),
12751 core::mem::transmute_copy(&pfolderfocus),
12752 core::mem::transmute_copy(&pfrminfoarray),
12753 )
12754 .into()
12755 }
12756 }
12757 unsafe extern "system" fn CalcFormPropSet<
12758 Identity: IMAPIFormMgr_Impl,
12759 const OFFSET: isize,
12760 >(
12761 this: *mut core::ffi::c_void,
12762 pfrminfoarray: *mut SMAPIFormInfoArray,
12763 ulflags: u32,
12764 ppresults: *mut *mut SMAPIFormPropArray,
12765 ) -> windows_core::HRESULT {
12766 unsafe {
12767 let this: &Identity =
12768 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12769 IMAPIFormMgr_Impl::CalcFormPropSet(
12770 this,
12771 core::mem::transmute_copy(&pfrminfoarray),
12772 core::mem::transmute_copy(&ulflags),
12773 core::mem::transmute_copy(&ppresults),
12774 )
12775 .into()
12776 }
12777 }
12778 unsafe extern "system" fn CreateForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12779 this: *mut core::ffi::c_void,
12780 uluiparam: usize,
12781 ulflags: u32,
12782 pfrminfotoactivate: *mut core::ffi::c_void,
12783 refiidtoask: *const windows_core::GUID,
12784 ppvobj: *mut *mut core::ffi::c_void,
12785 ) -> windows_core::HRESULT {
12786 unsafe {
12787 let this: &Identity =
12788 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12789 IMAPIFormMgr_Impl::CreateForm(
12790 this,
12791 core::mem::transmute_copy(&uluiparam),
12792 core::mem::transmute_copy(&ulflags),
12793 core::mem::transmute_copy(&pfrminfotoactivate),
12794 core::mem::transmute_copy(&refiidtoask),
12795 core::mem::transmute_copy(&ppvobj),
12796 )
12797 .into()
12798 }
12799 }
12800 unsafe extern "system" fn SelectForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12801 this: *mut core::ffi::c_void,
12802 uluiparam: usize,
12803 ulflags: u32,
12804 psztitle: *mut i8,
12805 pfld: *mut core::ffi::c_void,
12806 ppfrminforeturned: *mut *mut core::ffi::c_void,
12807 ) -> windows_core::HRESULT {
12808 unsafe {
12809 let this: &Identity =
12810 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12811 IMAPIFormMgr_Impl::SelectForm(
12812 this,
12813 core::mem::transmute_copy(&uluiparam),
12814 core::mem::transmute_copy(&ulflags),
12815 core::mem::transmute_copy(&psztitle),
12816 core::mem::transmute_copy(&pfld),
12817 core::mem::transmute_copy(&ppfrminforeturned),
12818 )
12819 .into()
12820 }
12821 }
12822 unsafe extern "system" fn SelectMultipleForms<
12823 Identity: IMAPIFormMgr_Impl,
12824 const OFFSET: isize,
12825 >(
12826 this: *mut core::ffi::c_void,
12827 uluiparam: usize,
12828 ulflags: u32,
12829 psztitle: *mut i8,
12830 pfld: *mut core::ffi::c_void,
12831 pfrminfoarray: *mut SMAPIFormInfoArray,
12832 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
12833 ) -> windows_core::HRESULT {
12834 unsafe {
12835 let this: &Identity =
12836 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12837 IMAPIFormMgr_Impl::SelectMultipleForms(
12838 this,
12839 core::mem::transmute_copy(&uluiparam),
12840 core::mem::transmute_copy(&ulflags),
12841 core::mem::transmute_copy(&psztitle),
12842 core::mem::transmute_copy(&pfld),
12843 core::mem::transmute_copy(&pfrminfoarray),
12844 core::mem::transmute_copy(&ppfrminfoarray),
12845 )
12846 .into()
12847 }
12848 }
12849 unsafe extern "system" fn SelectFormContainer<
12850 Identity: IMAPIFormMgr_Impl,
12851 const OFFSET: isize,
12852 >(
12853 this: *mut core::ffi::c_void,
12854 uluiparam: usize,
12855 ulflags: u32,
12856 lppfcnt: *mut *mut core::ffi::c_void,
12857 ) -> windows_core::HRESULT {
12858 unsafe {
12859 let this: &Identity =
12860 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12861 match IMAPIFormMgr_Impl::SelectFormContainer(
12862 this,
12863 core::mem::transmute_copy(&uluiparam),
12864 core::mem::transmute_copy(&ulflags),
12865 ) {
12866 Ok(ok__) => {
12867 lppfcnt.write(core::mem::transmute(ok__));
12868 windows_core::HRESULT(0)
12869 }
12870 Err(err) => err.into(),
12871 }
12872 }
12873 }
12874 unsafe extern "system" fn OpenFormContainer<
12875 Identity: IMAPIFormMgr_Impl,
12876 const OFFSET: isize,
12877 >(
12878 this: *mut core::ffi::c_void,
12879 hfrmreg: u32,
12880 lpunk: *mut core::ffi::c_void,
12881 lppfcnt: *mut *mut core::ffi::c_void,
12882 ) -> windows_core::HRESULT {
12883 unsafe {
12884 let this: &Identity =
12885 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12886 match IMAPIFormMgr_Impl::OpenFormContainer(
12887 this,
12888 core::mem::transmute_copy(&hfrmreg),
12889 core::mem::transmute_copy(&lpunk),
12890 ) {
12891 Ok(ok__) => {
12892 lppfcnt.write(core::mem::transmute(ok__));
12893 windows_core::HRESULT(0)
12894 }
12895 Err(err) => err.into(),
12896 }
12897 }
12898 }
12899 unsafe extern "system" fn PrepareForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12900 this: *mut core::ffi::c_void,
12901 uluiparam: usize,
12902 ulflags: u32,
12903 pfrminfo: *mut core::ffi::c_void,
12904 ) -> windows_core::HRESULT {
12905 unsafe {
12906 let this: &Identity =
12907 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12908 IMAPIFormMgr_Impl::PrepareForm(
12909 this,
12910 core::mem::transmute_copy(&uluiparam),
12911 core::mem::transmute_copy(&ulflags),
12912 core::mem::transmute_copy(&pfrminfo),
12913 )
12914 .into()
12915 }
12916 }
12917 unsafe extern "system" fn IsInConflict<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12918 this: *mut core::ffi::c_void,
12919 ulmessageflags: u32,
12920 ulmessagestatus: u32,
12921 szmessageclass: windows_core::PCSTR,
12922 pfolderfocus: *mut core::ffi::c_void,
12923 ) -> windows_core::HRESULT {
12924 unsafe {
12925 let this: &Identity =
12926 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12927 IMAPIFormMgr_Impl::IsInConflict(
12928 this,
12929 core::mem::transmute_copy(&ulmessageflags),
12930 core::mem::transmute_copy(&ulmessagestatus),
12931 core::mem::transmute(&szmessageclass),
12932 core::mem::transmute_copy(&pfolderfocus),
12933 )
12934 .into()
12935 }
12936 }
12937 Self {
12938 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12939 GetLastError: GetLastError::<Identity, OFFSET>,
12940 LoadForm: LoadForm::<Identity, OFFSET>,
12941 ResolveMessageClass: ResolveMessageClass::<Identity, OFFSET>,
12942 ResolveMultipleMessageClasses: ResolveMultipleMessageClasses::<Identity, OFFSET>,
12943 CalcFormPropSet: CalcFormPropSet::<Identity, OFFSET>,
12944 CreateForm: CreateForm::<Identity, OFFSET>,
12945 SelectForm: SelectForm::<Identity, OFFSET>,
12946 SelectMultipleForms: SelectMultipleForms::<Identity, OFFSET>,
12947 SelectFormContainer: SelectFormContainer::<Identity, OFFSET>,
12948 OpenFormContainer: OpenFormContainer::<Identity, OFFSET>,
12949 PrepareForm: PrepareForm::<Identity, OFFSET>,
12950 IsInConflict: IsInConflict::<Identity, OFFSET>,
12951 }
12952 }
12953 pub fn matches(iid: &windows_core::GUID) -> bool {
12954 iid == &<IMAPIFormMgr as windows_core::Interface>::IID
12955 }
12956}
12957impl windows_core::RuntimeName for IMAPIFormMgr {}
12958windows_core::imp::define_interface!(
12959 IMAPIMessageSite,
12960 IMAPIMessageSite_Vtbl,
12961 0x00020370_0000_0000_c000_000000000046
12962);
12963windows_core::imp::interface_hierarchy!(IMAPIMessageSite, windows_core::IUnknown);
12964impl IMAPIMessageSite {
12965 pub unsafe fn GetLastError(
12966 &self,
12967 hresult: windows_core::HRESULT,
12968 ulflags: u32,
12969 lppmapierror: *mut *mut MAPIERROR,
12970 ) -> windows_core::Result<()> {
12971 unsafe {
12972 (windows_core::Interface::vtable(self).GetLastError)(
12973 windows_core::Interface::as_raw(self),
12974 hresult,
12975 ulflags,
12976 lppmapierror as _,
12977 )
12978 .ok()
12979 }
12980 }
12981 pub unsafe fn GetSession(&self) -> windows_core::Result<IMAPISession> {
12982 unsafe {
12983 let mut result__ = core::mem::zeroed();
12984 (windows_core::Interface::vtable(self).GetSession)(
12985 windows_core::Interface::as_raw(self),
12986 &mut result__,
12987 )
12988 .and_then(|| windows_core::Type::from_abi(result__))
12989 }
12990 }
12991 pub unsafe fn GetStore(&self) -> windows_core::Result<IMsgStore> {
12992 unsafe {
12993 let mut result__ = core::mem::zeroed();
12994 (windows_core::Interface::vtable(self).GetStore)(
12995 windows_core::Interface::as_raw(self),
12996 &mut result__,
12997 )
12998 .and_then(|| windows_core::Type::from_abi(result__))
12999 }
13000 }
13001 pub unsafe fn GetFolder(&self) -> windows_core::Result<IMAPIFolder> {
13002 unsafe {
13003 let mut result__ = core::mem::zeroed();
13004 (windows_core::Interface::vtable(self).GetFolder)(
13005 windows_core::Interface::as_raw(self),
13006 &mut result__,
13007 )
13008 .and_then(|| windows_core::Type::from_abi(result__))
13009 }
13010 }
13011 pub unsafe fn GetMessageA(&self) -> windows_core::Result<IMessage> {
13012 unsafe {
13013 let mut result__ = core::mem::zeroed();
13014 (windows_core::Interface::vtable(self).GetMessageA)(
13015 windows_core::Interface::as_raw(self),
13016 &mut result__,
13017 )
13018 .and_then(|| windows_core::Type::from_abi(result__))
13019 }
13020 }
13021 pub unsafe fn GetFormManager(&self) -> windows_core::Result<IMAPIFormMgr> {
13022 unsafe {
13023 let mut result__ = core::mem::zeroed();
13024 (windows_core::Interface::vtable(self).GetFormManager)(
13025 windows_core::Interface::as_raw(self),
13026 &mut result__,
13027 )
13028 .and_then(|| windows_core::Type::from_abi(result__))
13029 }
13030 }
13031 pub unsafe fn NewMessage<P1, P2>(
13032 &self,
13033 fcomposeinfolder: u32,
13034 pfolderfocus: P1,
13035 ppersistmessage: P2,
13036 ppmessage: *mut Option<IMessage>,
13037 ppmessagesite: *mut Option<IMAPIMessageSite>,
13038 ppviewcontext: *mut Option<IMAPIViewContext>,
13039 ) -> windows_core::Result<()>
13040 where
13041 P1: windows_core::Param<IMAPIFolder>,
13042 P2: windows_core::Param<IPersistMessage>,
13043 {
13044 unsafe {
13045 (windows_core::Interface::vtable(self).NewMessage)(
13046 windows_core::Interface::as_raw(self),
13047 fcomposeinfolder,
13048 pfolderfocus.param().abi(),
13049 ppersistmessage.param().abi(),
13050 core::mem::transmute(ppmessage),
13051 core::mem::transmute(ppmessagesite),
13052 core::mem::transmute(ppviewcontext),
13053 )
13054 .ok()
13055 }
13056 }
13057 pub unsafe fn CopyMessage<P0>(&self, pfolderdestination: P0) -> windows_core::Result<()>
13058 where
13059 P0: windows_core::Param<IMAPIFolder>,
13060 {
13061 unsafe {
13062 (windows_core::Interface::vtable(self).CopyMessage)(
13063 windows_core::Interface::as_raw(self),
13064 pfolderdestination.param().abi(),
13065 )
13066 .ok()
13067 }
13068 }
13069 pub unsafe fn MoveMessage<P0, P1>(
13070 &self,
13071 pfolderdestination: P0,
13072 pviewcontext: P1,
13073 prcposrect: *mut windows::Win32::Foundation::RECT,
13074 ) -> windows_core::Result<()>
13075 where
13076 P0: windows_core::Param<IMAPIFolder>,
13077 P1: windows_core::Param<IMAPIViewContext>,
13078 {
13079 unsafe {
13080 (windows_core::Interface::vtable(self).MoveMessage)(
13081 windows_core::Interface::as_raw(self),
13082 pfolderdestination.param().abi(),
13083 pviewcontext.param().abi(),
13084 prcposrect as _,
13085 )
13086 .ok()
13087 }
13088 }
13089 pub unsafe fn DeleteMessage<P0>(
13090 &self,
13091 pviewcontext: P0,
13092 prcposrect: *mut windows::Win32::Foundation::RECT,
13093 ) -> windows_core::Result<()>
13094 where
13095 P0: windows_core::Param<IMAPIViewContext>,
13096 {
13097 unsafe {
13098 (windows_core::Interface::vtable(self).DeleteMessage)(
13099 windows_core::Interface::as_raw(self),
13100 pviewcontext.param().abi(),
13101 prcposrect as _,
13102 )
13103 .ok()
13104 }
13105 }
13106 pub unsafe fn SaveMessage(&self) -> windows_core::Result<()> {
13107 unsafe {
13108 (windows_core::Interface::vtable(self).SaveMessage)(windows_core::Interface::as_raw(
13109 self,
13110 ))
13111 .ok()
13112 }
13113 }
13114 pub unsafe fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()> {
13115 unsafe {
13116 (windows_core::Interface::vtable(self).SubmitMessage)(
13117 windows_core::Interface::as_raw(self),
13118 ulflags,
13119 )
13120 .ok()
13121 }
13122 }
13123 pub unsafe fn GetSiteStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()> {
13124 unsafe {
13125 (windows_core::Interface::vtable(self).GetSiteStatus)(
13126 windows_core::Interface::as_raw(self),
13127 lpulstatus as _,
13128 )
13129 .ok()
13130 }
13131 }
13132}
13133#[repr(C)]
13134pub struct IMAPIMessageSite_Vtbl {
13135 pub base__: windows_core::IUnknown_Vtbl,
13136 pub GetLastError: unsafe extern "system" fn(
13137 *mut core::ffi::c_void,
13138 windows_core::HRESULT,
13139 u32,
13140 *mut *mut MAPIERROR,
13141 ) -> windows_core::HRESULT,
13142 pub GetSession: unsafe extern "system" fn(
13143 *mut core::ffi::c_void,
13144 *mut *mut core::ffi::c_void,
13145 ) -> windows_core::HRESULT,
13146 pub GetStore: unsafe extern "system" fn(
13147 *mut core::ffi::c_void,
13148 *mut *mut core::ffi::c_void,
13149 ) -> windows_core::HRESULT,
13150 pub GetFolder: unsafe extern "system" fn(
13151 *mut core::ffi::c_void,
13152 *mut *mut core::ffi::c_void,
13153 ) -> windows_core::HRESULT,
13154 pub GetMessageA: unsafe extern "system" fn(
13155 *mut core::ffi::c_void,
13156 *mut *mut core::ffi::c_void,
13157 ) -> windows_core::HRESULT,
13158 pub GetFormManager: unsafe extern "system" fn(
13159 *mut core::ffi::c_void,
13160 *mut *mut core::ffi::c_void,
13161 ) -> windows_core::HRESULT,
13162 pub NewMessage: unsafe extern "system" fn(
13163 *mut core::ffi::c_void,
13164 u32,
13165 *mut core::ffi::c_void,
13166 *mut core::ffi::c_void,
13167 *mut *mut core::ffi::c_void,
13168 *mut *mut core::ffi::c_void,
13169 *mut *mut core::ffi::c_void,
13170 ) -> windows_core::HRESULT,
13171 pub CopyMessage: unsafe extern "system" fn(
13172 *mut core::ffi::c_void,
13173 *mut core::ffi::c_void,
13174 ) -> windows_core::HRESULT,
13175 pub MoveMessage: unsafe extern "system" fn(
13176 *mut core::ffi::c_void,
13177 *mut core::ffi::c_void,
13178 *mut core::ffi::c_void,
13179 *mut windows::Win32::Foundation::RECT,
13180 ) -> windows_core::HRESULT,
13181 pub DeleteMessage: unsafe extern "system" fn(
13182 *mut core::ffi::c_void,
13183 *mut core::ffi::c_void,
13184 *mut windows::Win32::Foundation::RECT,
13185 ) -> windows_core::HRESULT,
13186 pub SaveMessage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13187 pub SubmitMessage:
13188 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
13189 pub GetSiteStatus:
13190 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13191}
13192pub trait IMAPIMessageSite_Impl: windows_core::IUnknownImpl {
13193 fn GetLastError(
13194 &self,
13195 hresult: windows_core::HRESULT,
13196 ulflags: u32,
13197 lppmapierror: *mut *mut MAPIERROR,
13198 ) -> windows_core::Result<()>;
13199 fn GetSession(&self) -> windows_core::Result<IMAPISession>;
13200 fn GetStore(&self) -> windows_core::Result<IMsgStore>;
13201 fn GetFolder(&self) -> windows_core::Result<IMAPIFolder>;
13202 fn GetMessageA(&self) -> windows_core::Result<IMessage>;
13203 fn GetFormManager(&self) -> windows_core::Result<IMAPIFormMgr>;
13204 fn NewMessage(
13205 &self,
13206 fcomposeinfolder: u32,
13207 pfolderfocus: windows_core::Ref<'_, IMAPIFolder>,
13208 ppersistmessage: windows_core::Ref<'_, IPersistMessage>,
13209 ppmessage: windows_core::OutRef<'_, IMessage>,
13210 ppmessagesite: windows_core::OutRef<'_, IMAPIMessageSite>,
13211 ppviewcontext: windows_core::OutRef<'_, IMAPIViewContext>,
13212 ) -> windows_core::Result<()>;
13213 fn CopyMessage(
13214 &self,
13215 pfolderdestination: windows_core::Ref<'_, IMAPIFolder>,
13216 ) -> windows_core::Result<()>;
13217 fn MoveMessage(
13218 &self,
13219 pfolderdestination: windows_core::Ref<'_, IMAPIFolder>,
13220 pviewcontext: windows_core::Ref<'_, IMAPIViewContext>,
13221 prcposrect: *mut windows::Win32::Foundation::RECT,
13222 ) -> windows_core::Result<()>;
13223 fn DeleteMessage(
13224 &self,
13225 pviewcontext: windows_core::Ref<'_, IMAPIViewContext>,
13226 prcposrect: *mut windows::Win32::Foundation::RECT,
13227 ) -> windows_core::Result<()>;
13228 fn SaveMessage(&self) -> windows_core::Result<()>;
13229 fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()>;
13230 fn GetSiteStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()>;
13231}
13232impl IMAPIMessageSite_Vtbl {
13233 pub const fn new<Identity: IMAPIMessageSite_Impl, const OFFSET: isize>() -> Self {
13234 unsafe extern "system" fn GetLastError<
13235 Identity: IMAPIMessageSite_Impl,
13236 const OFFSET: isize,
13237 >(
13238 this: *mut core::ffi::c_void,
13239 hresult: windows_core::HRESULT,
13240 ulflags: u32,
13241 lppmapierror: *mut *mut MAPIERROR,
13242 ) -> windows_core::HRESULT {
13243 unsafe {
13244 let this: &Identity =
13245 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13246 IMAPIMessageSite_Impl::GetLastError(
13247 this,
13248 core::mem::transmute_copy(&hresult),
13249 core::mem::transmute_copy(&ulflags),
13250 core::mem::transmute_copy(&lppmapierror),
13251 )
13252 .into()
13253 }
13254 }
13255 unsafe extern "system" fn GetSession<
13256 Identity: IMAPIMessageSite_Impl,
13257 const OFFSET: isize,
13258 >(
13259 this: *mut core::ffi::c_void,
13260 ppsession: *mut *mut core::ffi::c_void,
13261 ) -> windows_core::HRESULT {
13262 unsafe {
13263 let this: &Identity =
13264 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13265 match IMAPIMessageSite_Impl::GetSession(this) {
13266 Ok(ok__) => {
13267 ppsession.write(core::mem::transmute(ok__));
13268 windows_core::HRESULT(0)
13269 }
13270 Err(err) => err.into(),
13271 }
13272 }
13273 }
13274 unsafe extern "system" fn GetStore<Identity: IMAPIMessageSite_Impl, const OFFSET: isize>(
13275 this: *mut core::ffi::c_void,
13276 ppstore: *mut *mut core::ffi::c_void,
13277 ) -> windows_core::HRESULT {
13278 unsafe {
13279 let this: &Identity =
13280 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13281 match IMAPIMessageSite_Impl::GetStore(this) {
13282 Ok(ok__) => {
13283 ppstore.write(core::mem::transmute(ok__));
13284 windows_core::HRESULT(0)
13285 }
13286 Err(err) => err.into(),
13287 }
13288 }
13289 }
13290 unsafe extern "system" fn GetFolder<
13291 Identity: IMAPIMessageSite_Impl,
13292 const OFFSET: isize,
13293 >(
13294 this: *mut core::ffi::c_void,
13295 ppfolder: *mut *mut core::ffi::c_void,
13296 ) -> windows_core::HRESULT {
13297 unsafe {
13298 let this: &Identity =
13299 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13300 match IMAPIMessageSite_Impl::GetFolder(this) {
13301 Ok(ok__) => {
13302 ppfolder.write(core::mem::transmute(ok__));
13303 windows_core::HRESULT(0)
13304 }
13305 Err(err) => err.into(),
13306 }
13307 }
13308 }
13309 unsafe extern "system" fn GetMessageA<
13310 Identity: IMAPIMessageSite_Impl,
13311 const OFFSET: isize,
13312 >(
13313 this: *mut core::ffi::c_void,
13314 ppmsg: *mut *mut core::ffi::c_void,
13315 ) -> windows_core::HRESULT {
13316 unsafe {
13317 let this: &Identity =
13318 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13319 match IMAPIMessageSite_Impl::GetMessageA(this) {
13320 Ok(ok__) => {
13321 ppmsg.write(core::mem::transmute(ok__));
13322 windows_core::HRESULT(0)
13323 }
13324 Err(err) => err.into(),
13325 }
13326 }
13327 }
13328 unsafe extern "system" fn GetFormManager<
13329 Identity: IMAPIMessageSite_Impl,
13330 const OFFSET: isize,
13331 >(
13332 this: *mut core::ffi::c_void,
13333 ppformmgr: *mut *mut core::ffi::c_void,
13334 ) -> windows_core::HRESULT {
13335 unsafe {
13336 let this: &Identity =
13337 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13338 match IMAPIMessageSite_Impl::GetFormManager(this) {
13339 Ok(ok__) => {
13340 ppformmgr.write(core::mem::transmute(ok__));
13341 windows_core::HRESULT(0)
13342 }
13343 Err(err) => err.into(),
13344 }
13345 }
13346 }
13347 unsafe extern "system" fn NewMessage<
13348 Identity: IMAPIMessageSite_Impl,
13349 const OFFSET: isize,
13350 >(
13351 this: *mut core::ffi::c_void,
13352 fcomposeinfolder: u32,
13353 pfolderfocus: *mut core::ffi::c_void,
13354 ppersistmessage: *mut core::ffi::c_void,
13355 ppmessage: *mut *mut core::ffi::c_void,
13356 ppmessagesite: *mut *mut core::ffi::c_void,
13357 ppviewcontext: *mut *mut core::ffi::c_void,
13358 ) -> windows_core::HRESULT {
13359 unsafe {
13360 let this: &Identity =
13361 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13362 IMAPIMessageSite_Impl::NewMessage(
13363 this,
13364 core::mem::transmute_copy(&fcomposeinfolder),
13365 core::mem::transmute_copy(&pfolderfocus),
13366 core::mem::transmute_copy(&ppersistmessage),
13367 core::mem::transmute_copy(&ppmessage),
13368 core::mem::transmute_copy(&ppmessagesite),
13369 core::mem::transmute_copy(&ppviewcontext),
13370 )
13371 .into()
13372 }
13373 }
13374 unsafe extern "system" fn CopyMessage<
13375 Identity: IMAPIMessageSite_Impl,
13376 const OFFSET: isize,
13377 >(
13378 this: *mut core::ffi::c_void,
13379 pfolderdestination: *mut core::ffi::c_void,
13380 ) -> windows_core::HRESULT {
13381 unsafe {
13382 let this: &Identity =
13383 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13384 IMAPIMessageSite_Impl::CopyMessage(
13385 this,
13386 core::mem::transmute_copy(&pfolderdestination),
13387 )
13388 .into()
13389 }
13390 }
13391 unsafe extern "system" fn MoveMessage<
13392 Identity: IMAPIMessageSite_Impl,
13393 const OFFSET: isize,
13394 >(
13395 this: *mut core::ffi::c_void,
13396 pfolderdestination: *mut core::ffi::c_void,
13397 pviewcontext: *mut core::ffi::c_void,
13398 prcposrect: *mut windows::Win32::Foundation::RECT,
13399 ) -> windows_core::HRESULT {
13400 unsafe {
13401 let this: &Identity =
13402 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13403 IMAPIMessageSite_Impl::MoveMessage(
13404 this,
13405 core::mem::transmute_copy(&pfolderdestination),
13406 core::mem::transmute_copy(&pviewcontext),
13407 core::mem::transmute_copy(&prcposrect),
13408 )
13409 .into()
13410 }
13411 }
13412 unsafe extern "system" fn DeleteMessage<
13413 Identity: IMAPIMessageSite_Impl,
13414 const OFFSET: isize,
13415 >(
13416 this: *mut core::ffi::c_void,
13417 pviewcontext: *mut core::ffi::c_void,
13418 prcposrect: *mut windows::Win32::Foundation::RECT,
13419 ) -> windows_core::HRESULT {
13420 unsafe {
13421 let this: &Identity =
13422 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13423 IMAPIMessageSite_Impl::DeleteMessage(
13424 this,
13425 core::mem::transmute_copy(&pviewcontext),
13426 core::mem::transmute_copy(&prcposrect),
13427 )
13428 .into()
13429 }
13430 }
13431 unsafe extern "system" fn SaveMessage<
13432 Identity: IMAPIMessageSite_Impl,
13433 const OFFSET: isize,
13434 >(
13435 this: *mut core::ffi::c_void,
13436 ) -> windows_core::HRESULT {
13437 unsafe {
13438 let this: &Identity =
13439 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13440 IMAPIMessageSite_Impl::SaveMessage(this).into()
13441 }
13442 }
13443 unsafe extern "system" fn SubmitMessage<
13444 Identity: IMAPIMessageSite_Impl,
13445 const OFFSET: isize,
13446 >(
13447 this: *mut core::ffi::c_void,
13448 ulflags: u32,
13449 ) -> windows_core::HRESULT {
13450 unsafe {
13451 let this: &Identity =
13452 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13453 IMAPIMessageSite_Impl::SubmitMessage(this, core::mem::transmute_copy(&ulflags))
13454 .into()
13455 }
13456 }
13457 unsafe extern "system" fn GetSiteStatus<
13458 Identity: IMAPIMessageSite_Impl,
13459 const OFFSET: isize,
13460 >(
13461 this: *mut core::ffi::c_void,
13462 lpulstatus: *mut u32,
13463 ) -> windows_core::HRESULT {
13464 unsafe {
13465 let this: &Identity =
13466 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13467 IMAPIMessageSite_Impl::GetSiteStatus(this, core::mem::transmute_copy(&lpulstatus))
13468 .into()
13469 }
13470 }
13471 Self {
13472 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13473 GetLastError: GetLastError::<Identity, OFFSET>,
13474 GetSession: GetSession::<Identity, OFFSET>,
13475 GetStore: GetStore::<Identity, OFFSET>,
13476 GetFolder: GetFolder::<Identity, OFFSET>,
13477 GetMessageA: GetMessageA::<Identity, OFFSET>,
13478 GetFormManager: GetFormManager::<Identity, OFFSET>,
13479 NewMessage: NewMessage::<Identity, OFFSET>,
13480 CopyMessage: CopyMessage::<Identity, OFFSET>,
13481 MoveMessage: MoveMessage::<Identity, OFFSET>,
13482 DeleteMessage: DeleteMessage::<Identity, OFFSET>,
13483 SaveMessage: SaveMessage::<Identity, OFFSET>,
13484 SubmitMessage: SubmitMessage::<Identity, OFFSET>,
13485 GetSiteStatus: GetSiteStatus::<Identity, OFFSET>,
13486 }
13487 }
13488 pub fn matches(iid: &windows_core::GUID) -> bool {
13489 iid == &<IMAPIMessageSite as windows_core::Interface>::IID
13490 }
13491}
13492impl windows_core::RuntimeName for IMAPIMessageSite {}
13493windows_core::imp::define_interface!(
13494 IMAPIProgress,
13495 IMAPIProgress_Vtbl,
13496 0x0002031f_0000_0000_c000_000000000046
13497);
13498windows_core::imp::interface_hierarchy!(IMAPIProgress, windows_core::IUnknown);
13499impl IMAPIProgress {
13500 pub unsafe fn Progress(
13501 &self,
13502 ulvalue: u32,
13503 ulcount: u32,
13504 ultotal: u32,
13505 ) -> windows_core::Result<()> {
13506 unsafe {
13507 (windows_core::Interface::vtable(self).Progress)(
13508 windows_core::Interface::as_raw(self),
13509 ulvalue,
13510 ulcount,
13511 ultotal,
13512 )
13513 .ok()
13514 }
13515 }
13516 pub unsafe fn GetFlags(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
13517 unsafe {
13518 (windows_core::Interface::vtable(self).GetFlags)(
13519 windows_core::Interface::as_raw(self),
13520 lpulflags as _,
13521 )
13522 .ok()
13523 }
13524 }
13525 pub unsafe fn GetMax(&self, lpulmax: *mut u32) -> windows_core::Result<()> {
13526 unsafe {
13527 (windows_core::Interface::vtable(self).GetMax)(
13528 windows_core::Interface::as_raw(self),
13529 lpulmax as _,
13530 )
13531 .ok()
13532 }
13533 }
13534 pub unsafe fn GetMin(&self, lpulmin: *mut u32) -> windows_core::Result<()> {
13535 unsafe {
13536 (windows_core::Interface::vtable(self).GetMin)(
13537 windows_core::Interface::as_raw(self),
13538 lpulmin as _,
13539 )
13540 .ok()
13541 }
13542 }
13543 pub unsafe fn SetLimits(
13544 &self,
13545 lpulmin: *mut u32,
13546 lpulmax: *mut u32,
13547 lpulflags: *mut u32,
13548 ) -> windows_core::Result<()> {
13549 unsafe {
13550 (windows_core::Interface::vtable(self).SetLimits)(
13551 windows_core::Interface::as_raw(self),
13552 lpulmin as _,
13553 lpulmax as _,
13554 lpulflags as _,
13555 )
13556 .ok()
13557 }
13558 }
13559}
13560#[repr(C)]
13561pub struct IMAPIProgress_Vtbl {
13562 pub base__: windows_core::IUnknown_Vtbl,
13563 pub Progress:
13564 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
13565 pub GetFlags:
13566 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13567 pub GetMax:
13568 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13569 pub GetMin:
13570 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13571 pub SetLimits: unsafe extern "system" fn(
13572 *mut core::ffi::c_void,
13573 *mut u32,
13574 *mut u32,
13575 *mut u32,
13576 ) -> windows_core::HRESULT,
13577}
13578pub trait IMAPIProgress_Impl: windows_core::IUnknownImpl {
13579 fn Progress(&self, ulvalue: u32, ulcount: u32, ultotal: u32) -> windows_core::Result<()>;
13580 fn GetFlags(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
13581 fn GetMax(&self, lpulmax: *mut u32) -> windows_core::Result<()>;
13582 fn GetMin(&self, lpulmin: *mut u32) -> windows_core::Result<()>;
13583 fn SetLimits(
13584 &self,
13585 lpulmin: *mut u32,
13586 lpulmax: *mut u32,
13587 lpulflags: *mut u32,
13588 ) -> windows_core::Result<()>;
13589}
13590impl IMAPIProgress_Vtbl {
13591 pub const fn new<Identity: IMAPIProgress_Impl, const OFFSET: isize>() -> Self {
13592 unsafe extern "system" fn Progress<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13593 this: *mut core::ffi::c_void,
13594 ulvalue: u32,
13595 ulcount: u32,
13596 ultotal: u32,
13597 ) -> windows_core::HRESULT {
13598 unsafe {
13599 let this: &Identity =
13600 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13601 IMAPIProgress_Impl::Progress(
13602 this,
13603 core::mem::transmute_copy(&ulvalue),
13604 core::mem::transmute_copy(&ulcount),
13605 core::mem::transmute_copy(&ultotal),
13606 )
13607 .into()
13608 }
13609 }
13610 unsafe extern "system" fn GetFlags<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13611 this: *mut core::ffi::c_void,
13612 lpulflags: *mut u32,
13613 ) -> windows_core::HRESULT {
13614 unsafe {
13615 let this: &Identity =
13616 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13617 IMAPIProgress_Impl::GetFlags(this, core::mem::transmute_copy(&lpulflags)).into()
13618 }
13619 }
13620 unsafe extern "system" fn GetMax<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13621 this: *mut core::ffi::c_void,
13622 lpulmax: *mut u32,
13623 ) -> windows_core::HRESULT {
13624 unsafe {
13625 let this: &Identity =
13626 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13627 IMAPIProgress_Impl::GetMax(this, core::mem::transmute_copy(&lpulmax)).into()
13628 }
13629 }
13630 unsafe extern "system" fn GetMin<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13631 this: *mut core::ffi::c_void,
13632 lpulmin: *mut u32,
13633 ) -> windows_core::HRESULT {
13634 unsafe {
13635 let this: &Identity =
13636 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13637 IMAPIProgress_Impl::GetMin(this, core::mem::transmute_copy(&lpulmin)).into()
13638 }
13639 }
13640 unsafe extern "system" fn SetLimits<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13641 this: *mut core::ffi::c_void,
13642 lpulmin: *mut u32,
13643 lpulmax: *mut u32,
13644 lpulflags: *mut u32,
13645 ) -> windows_core::HRESULT {
13646 unsafe {
13647 let this: &Identity =
13648 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13649 IMAPIProgress_Impl::SetLimits(
13650 this,
13651 core::mem::transmute_copy(&lpulmin),
13652 core::mem::transmute_copy(&lpulmax),
13653 core::mem::transmute_copy(&lpulflags),
13654 )
13655 .into()
13656 }
13657 }
13658 Self {
13659 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13660 Progress: Progress::<Identity, OFFSET>,
13661 GetFlags: GetFlags::<Identity, OFFSET>,
13662 GetMax: GetMax::<Identity, OFFSET>,
13663 GetMin: GetMin::<Identity, OFFSET>,
13664 SetLimits: SetLimits::<Identity, OFFSET>,
13665 }
13666 }
13667 pub fn matches(iid: &windows_core::GUID) -> bool {
13668 iid == &<IMAPIProgress as windows_core::Interface>::IID
13669 }
13670}
13671impl windows_core::RuntimeName for IMAPIProgress {}
13672windows_core::imp::define_interface!(
13673 IMAPIProp,
13674 IMAPIProp_Vtbl,
13675 0x00020303_0000_0000_c000_000000000046
13676);
13677windows_core::imp::interface_hierarchy!(IMAPIProp, windows_core::IUnknown);
13678impl IMAPIProp {
13679 pub unsafe fn GetLastError(
13680 &self,
13681 hresult: windows_core::HRESULT,
13682 ulflags: u32,
13683 lppmapierror: *mut *mut MAPIERROR,
13684 ) -> windows_core::Result<()> {
13685 unsafe {
13686 (windows_core::Interface::vtable(self).GetLastError)(
13687 windows_core::Interface::as_raw(self),
13688 hresult,
13689 ulflags,
13690 lppmapierror as _,
13691 )
13692 .ok()
13693 }
13694 }
13695 pub unsafe fn SaveChanges(&self, ulflags: u32) -> windows_core::Result<()> {
13696 unsafe {
13697 (windows_core::Interface::vtable(self).SaveChanges)(
13698 windows_core::Interface::as_raw(self),
13699 ulflags,
13700 )
13701 .ok()
13702 }
13703 }
13704 pub unsafe fn GetProps(
13705 &self,
13706 lpproptagarray: *mut SPropTagArray,
13707 ulflags: u32,
13708 lpcvalues: *mut u32,
13709 lppproparray: *mut *mut SPropValue,
13710 ) -> windows_core::Result<()> {
13711 unsafe {
13712 (windows_core::Interface::vtable(self).GetProps)(
13713 windows_core::Interface::as_raw(self),
13714 lpproptagarray as _,
13715 ulflags,
13716 lpcvalues as _,
13717 lppproparray as _,
13718 )
13719 .ok()
13720 }
13721 }
13722 pub unsafe fn GetPropList(
13723 &self,
13724 ulflags: u32,
13725 lppproptagarray: *mut *mut SPropTagArray,
13726 ) -> windows_core::Result<()> {
13727 unsafe {
13728 (windows_core::Interface::vtable(self).GetPropList)(
13729 windows_core::Interface::as_raw(self),
13730 ulflags,
13731 lppproptagarray as _,
13732 )
13733 .ok()
13734 }
13735 }
13736 pub unsafe fn OpenProperty(
13737 &self,
13738 ulproptag: u32,
13739 lpiid: *mut windows_core::GUID,
13740 ulinterfaceoptions: u32,
13741 ulflags: u32,
13742 lppunk: *mut Option<windows_core::IUnknown>,
13743 ) -> windows_core::Result<()> {
13744 unsafe {
13745 (windows_core::Interface::vtable(self).OpenProperty)(
13746 windows_core::Interface::as_raw(self),
13747 ulproptag,
13748 lpiid as _,
13749 ulinterfaceoptions,
13750 ulflags,
13751 core::mem::transmute(lppunk),
13752 )
13753 .ok()
13754 }
13755 }
13756 pub unsafe fn SetProps(
13757 &self,
13758 cvalues: u32,
13759 lpproparray: *mut SPropValue,
13760 lppproblems: *mut *mut SPropProblemArray,
13761 ) -> windows_core::Result<()> {
13762 unsafe {
13763 (windows_core::Interface::vtable(self).SetProps)(
13764 windows_core::Interface::as_raw(self),
13765 cvalues,
13766 lpproparray as _,
13767 lppproblems as _,
13768 )
13769 .ok()
13770 }
13771 }
13772 pub unsafe fn DeleteProps(
13773 &self,
13774 lpproptagarray: *mut SPropTagArray,
13775 lppproblems: *mut *mut SPropProblemArray,
13776 ) -> windows_core::Result<()> {
13777 unsafe {
13778 (windows_core::Interface::vtable(self).DeleteProps)(
13779 windows_core::Interface::as_raw(self),
13780 lpproptagarray as _,
13781 lppproblems as _,
13782 )
13783 .ok()
13784 }
13785 }
13786 pub unsafe fn CopyTo<P4>(
13787 &self,
13788 ciidexclude: u32,
13789 rgiidexclude: *mut windows_core::GUID,
13790 lpexcludeprops: *mut SPropTagArray,
13791 uluiparam: usize,
13792 lpprogress: P4,
13793 lpinterface: *mut windows_core::GUID,
13794 lpdestobj: *mut core::ffi::c_void,
13795 ulflags: u32,
13796 lppproblems: *mut *mut SPropProblemArray,
13797 ) -> windows_core::Result<()>
13798 where
13799 P4: windows_core::Param<IMAPIProgress>,
13800 {
13801 unsafe {
13802 (windows_core::Interface::vtable(self).CopyTo)(
13803 windows_core::Interface::as_raw(self),
13804 ciidexclude,
13805 rgiidexclude as _,
13806 lpexcludeprops as _,
13807 uluiparam,
13808 lpprogress.param().abi(),
13809 lpinterface as _,
13810 lpdestobj as _,
13811 ulflags,
13812 lppproblems as _,
13813 )
13814 .ok()
13815 }
13816 }
13817 pub unsafe fn CopyProps<P2>(
13818 &self,
13819 lpincludeprops: *mut SPropTagArray,
13820 uluiparam: usize,
13821 lpprogress: P2,
13822 lpinterface: *mut windows_core::GUID,
13823 lpdestobj: *mut core::ffi::c_void,
13824 ulflags: u32,
13825 lppproblems: *mut *mut SPropProblemArray,
13826 ) -> windows_core::Result<()>
13827 where
13828 P2: windows_core::Param<IMAPIProgress>,
13829 {
13830 unsafe {
13831 (windows_core::Interface::vtable(self).CopyProps)(
13832 windows_core::Interface::as_raw(self),
13833 lpincludeprops as _,
13834 uluiparam,
13835 lpprogress.param().abi(),
13836 lpinterface as _,
13837 lpdestobj as _,
13838 ulflags,
13839 lppproblems as _,
13840 )
13841 .ok()
13842 }
13843 }
13844 pub unsafe fn GetNamesFromIDs(
13845 &self,
13846 lppproptags: *mut *mut SPropTagArray,
13847 lppropsetguid: *mut windows_core::GUID,
13848 ulflags: u32,
13849 lpcpropnames: *mut u32,
13850 lppppropnames: *mut *mut *mut MAPINAMEID,
13851 ) -> windows_core::Result<()> {
13852 unsafe {
13853 (windows_core::Interface::vtable(self).GetNamesFromIDs)(
13854 windows_core::Interface::as_raw(self),
13855 lppproptags as _,
13856 lppropsetguid as _,
13857 ulflags,
13858 lpcpropnames as _,
13859 lppppropnames as _,
13860 )
13861 .ok()
13862 }
13863 }
13864 pub unsafe fn GetIDsFromNames(
13865 &self,
13866 cpropnames: u32,
13867 lpppropnames: *mut *mut MAPINAMEID,
13868 ulflags: u32,
13869 lppproptags: *mut *mut SPropTagArray,
13870 ) -> windows_core::Result<()> {
13871 unsafe {
13872 (windows_core::Interface::vtable(self).GetIDsFromNames)(
13873 windows_core::Interface::as_raw(self),
13874 cpropnames,
13875 lpppropnames as _,
13876 ulflags,
13877 lppproptags as _,
13878 )
13879 .ok()
13880 }
13881 }
13882}
13883#[repr(C)]
13884pub struct IMAPIProp_Vtbl {
13885 pub base__: windows_core::IUnknown_Vtbl,
13886 pub GetLastError: unsafe extern "system" fn(
13887 *mut core::ffi::c_void,
13888 windows_core::HRESULT,
13889 u32,
13890 *mut *mut MAPIERROR,
13891 ) -> windows_core::HRESULT,
13892 pub SaveChanges:
13893 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
13894 pub GetProps: unsafe extern "system" fn(
13895 *mut core::ffi::c_void,
13896 *mut SPropTagArray,
13897 u32,
13898 *mut u32,
13899 *mut *mut SPropValue,
13900 ) -> windows_core::HRESULT,
13901 pub GetPropList: unsafe extern "system" fn(
13902 *mut core::ffi::c_void,
13903 u32,
13904 *mut *mut SPropTagArray,
13905 ) -> windows_core::HRESULT,
13906 pub OpenProperty: unsafe extern "system" fn(
13907 *mut core::ffi::c_void,
13908 u32,
13909 *mut windows_core::GUID,
13910 u32,
13911 u32,
13912 *mut *mut core::ffi::c_void,
13913 ) -> windows_core::HRESULT,
13914 pub SetProps: unsafe extern "system" fn(
13915 *mut core::ffi::c_void,
13916 u32,
13917 *mut SPropValue,
13918 *mut *mut SPropProblemArray,
13919 ) -> windows_core::HRESULT,
13920 pub DeleteProps: unsafe extern "system" fn(
13921 *mut core::ffi::c_void,
13922 *mut SPropTagArray,
13923 *mut *mut SPropProblemArray,
13924 ) -> windows_core::HRESULT,
13925 pub CopyTo: unsafe extern "system" fn(
13926 *mut core::ffi::c_void,
13927 u32,
13928 *mut windows_core::GUID,
13929 *mut SPropTagArray,
13930 usize,
13931 *mut core::ffi::c_void,
13932 *mut windows_core::GUID,
13933 *mut core::ffi::c_void,
13934 u32,
13935 *mut *mut SPropProblemArray,
13936 ) -> windows_core::HRESULT,
13937 pub CopyProps: unsafe extern "system" fn(
13938 *mut core::ffi::c_void,
13939 *mut SPropTagArray,
13940 usize,
13941 *mut core::ffi::c_void,
13942 *mut windows_core::GUID,
13943 *mut core::ffi::c_void,
13944 u32,
13945 *mut *mut SPropProblemArray,
13946 ) -> windows_core::HRESULT,
13947 pub GetNamesFromIDs: unsafe extern "system" fn(
13948 *mut core::ffi::c_void,
13949 *mut *mut SPropTagArray,
13950 *mut windows_core::GUID,
13951 u32,
13952 *mut u32,
13953 *mut *mut *mut MAPINAMEID,
13954 ) -> windows_core::HRESULT,
13955 pub GetIDsFromNames: unsafe extern "system" fn(
13956 *mut core::ffi::c_void,
13957 u32,
13958 *mut *mut MAPINAMEID,
13959 u32,
13960 *mut *mut SPropTagArray,
13961 ) -> windows_core::HRESULT,
13962}
13963pub trait IMAPIProp_Impl: windows_core::IUnknownImpl {
13964 fn GetLastError(
13965 &self,
13966 hresult: windows_core::HRESULT,
13967 ulflags: u32,
13968 lppmapierror: *mut *mut MAPIERROR,
13969 ) -> windows_core::Result<()>;
13970 fn SaveChanges(&self, ulflags: u32) -> windows_core::Result<()>;
13971 fn GetProps(
13972 &self,
13973 lpproptagarray: *mut SPropTagArray,
13974 ulflags: u32,
13975 lpcvalues: *mut u32,
13976 lppproparray: *mut *mut SPropValue,
13977 ) -> windows_core::Result<()>;
13978 fn GetPropList(
13979 &self,
13980 ulflags: u32,
13981 lppproptagarray: *mut *mut SPropTagArray,
13982 ) -> windows_core::Result<()>;
13983 fn OpenProperty(
13984 &self,
13985 ulproptag: u32,
13986 lpiid: *mut windows_core::GUID,
13987 ulinterfaceoptions: u32,
13988 ulflags: u32,
13989 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
13990 ) -> windows_core::Result<()>;
13991 fn SetProps(
13992 &self,
13993 cvalues: u32,
13994 lpproparray: *mut SPropValue,
13995 lppproblems: *mut *mut SPropProblemArray,
13996 ) -> windows_core::Result<()>;
13997 fn DeleteProps(
13998 &self,
13999 lpproptagarray: *mut SPropTagArray,
14000 lppproblems: *mut *mut SPropProblemArray,
14001 ) -> windows_core::Result<()>;
14002 fn CopyTo(
14003 &self,
14004 ciidexclude: u32,
14005 rgiidexclude: *mut windows_core::GUID,
14006 lpexcludeprops: *mut SPropTagArray,
14007 uluiparam: usize,
14008 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
14009 lpinterface: *mut windows_core::GUID,
14010 lpdestobj: *mut core::ffi::c_void,
14011 ulflags: u32,
14012 lppproblems: *mut *mut SPropProblemArray,
14013 ) -> windows_core::Result<()>;
14014 fn CopyProps(
14015 &self,
14016 lpincludeprops: *mut SPropTagArray,
14017 uluiparam: usize,
14018 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
14019 lpinterface: *mut windows_core::GUID,
14020 lpdestobj: *mut core::ffi::c_void,
14021 ulflags: u32,
14022 lppproblems: *mut *mut SPropProblemArray,
14023 ) -> windows_core::Result<()>;
14024 fn GetNamesFromIDs(
14025 &self,
14026 lppproptags: *mut *mut SPropTagArray,
14027 lppropsetguid: *mut windows_core::GUID,
14028 ulflags: u32,
14029 lpcpropnames: *mut u32,
14030 lppppropnames: *mut *mut *mut MAPINAMEID,
14031 ) -> windows_core::Result<()>;
14032 fn GetIDsFromNames(
14033 &self,
14034 cpropnames: u32,
14035 lpppropnames: *mut *mut MAPINAMEID,
14036 ulflags: u32,
14037 lppproptags: *mut *mut SPropTagArray,
14038 ) -> windows_core::Result<()>;
14039}
14040impl IMAPIProp_Vtbl {
14041 pub const fn new<Identity: IMAPIProp_Impl, const OFFSET: isize>() -> Self {
14042 unsafe extern "system" fn GetLastError<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14043 this: *mut core::ffi::c_void,
14044 hresult: windows_core::HRESULT,
14045 ulflags: u32,
14046 lppmapierror: *mut *mut MAPIERROR,
14047 ) -> windows_core::HRESULT {
14048 unsafe {
14049 let this: &Identity =
14050 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14051 IMAPIProp_Impl::GetLastError(
14052 this,
14053 core::mem::transmute_copy(&hresult),
14054 core::mem::transmute_copy(&ulflags),
14055 core::mem::transmute_copy(&lppmapierror),
14056 )
14057 .into()
14058 }
14059 }
14060 unsafe extern "system" fn SaveChanges<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14061 this: *mut core::ffi::c_void,
14062 ulflags: u32,
14063 ) -> windows_core::HRESULT {
14064 unsafe {
14065 let this: &Identity =
14066 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14067 IMAPIProp_Impl::SaveChanges(this, core::mem::transmute_copy(&ulflags)).into()
14068 }
14069 }
14070 unsafe extern "system" fn GetProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14071 this: *mut core::ffi::c_void,
14072 lpproptagarray: *mut SPropTagArray,
14073 ulflags: u32,
14074 lpcvalues: *mut u32,
14075 lppproparray: *mut *mut SPropValue,
14076 ) -> windows_core::HRESULT {
14077 unsafe {
14078 let this: &Identity =
14079 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14080 IMAPIProp_Impl::GetProps(
14081 this,
14082 core::mem::transmute_copy(&lpproptagarray),
14083 core::mem::transmute_copy(&ulflags),
14084 core::mem::transmute_copy(&lpcvalues),
14085 core::mem::transmute_copy(&lppproparray),
14086 )
14087 .into()
14088 }
14089 }
14090 unsafe extern "system" fn GetPropList<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14091 this: *mut core::ffi::c_void,
14092 ulflags: u32,
14093 lppproptagarray: *mut *mut SPropTagArray,
14094 ) -> windows_core::HRESULT {
14095 unsafe {
14096 let this: &Identity =
14097 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14098 IMAPIProp_Impl::GetPropList(
14099 this,
14100 core::mem::transmute_copy(&ulflags),
14101 core::mem::transmute_copy(&lppproptagarray),
14102 )
14103 .into()
14104 }
14105 }
14106 unsafe extern "system" fn OpenProperty<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14107 this: *mut core::ffi::c_void,
14108 ulproptag: u32,
14109 lpiid: *mut windows_core::GUID,
14110 ulinterfaceoptions: u32,
14111 ulflags: u32,
14112 lppunk: *mut *mut core::ffi::c_void,
14113 ) -> windows_core::HRESULT {
14114 unsafe {
14115 let this: &Identity =
14116 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14117 IMAPIProp_Impl::OpenProperty(
14118 this,
14119 core::mem::transmute_copy(&ulproptag),
14120 core::mem::transmute_copy(&lpiid),
14121 core::mem::transmute_copy(&ulinterfaceoptions),
14122 core::mem::transmute_copy(&ulflags),
14123 core::mem::transmute_copy(&lppunk),
14124 )
14125 .into()
14126 }
14127 }
14128 unsafe extern "system" fn SetProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14129 this: *mut core::ffi::c_void,
14130 cvalues: u32,
14131 lpproparray: *mut SPropValue,
14132 lppproblems: *mut *mut SPropProblemArray,
14133 ) -> windows_core::HRESULT {
14134 unsafe {
14135 let this: &Identity =
14136 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14137 IMAPIProp_Impl::SetProps(
14138 this,
14139 core::mem::transmute_copy(&cvalues),
14140 core::mem::transmute_copy(&lpproparray),
14141 core::mem::transmute_copy(&lppproblems),
14142 )
14143 .into()
14144 }
14145 }
14146 unsafe extern "system" fn DeleteProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14147 this: *mut core::ffi::c_void,
14148 lpproptagarray: *mut SPropTagArray,
14149 lppproblems: *mut *mut SPropProblemArray,
14150 ) -> windows_core::HRESULT {
14151 unsafe {
14152 let this: &Identity =
14153 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14154 IMAPIProp_Impl::DeleteProps(
14155 this,
14156 core::mem::transmute_copy(&lpproptagarray),
14157 core::mem::transmute_copy(&lppproblems),
14158 )
14159 .into()
14160 }
14161 }
14162 unsafe extern "system" fn CopyTo<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14163 this: *mut core::ffi::c_void,
14164 ciidexclude: u32,
14165 rgiidexclude: *mut windows_core::GUID,
14166 lpexcludeprops: *mut SPropTagArray,
14167 uluiparam: usize,
14168 lpprogress: *mut core::ffi::c_void,
14169 lpinterface: *mut windows_core::GUID,
14170 lpdestobj: *mut core::ffi::c_void,
14171 ulflags: u32,
14172 lppproblems: *mut *mut SPropProblemArray,
14173 ) -> windows_core::HRESULT {
14174 unsafe {
14175 let this: &Identity =
14176 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14177 IMAPIProp_Impl::CopyTo(
14178 this,
14179 core::mem::transmute_copy(&ciidexclude),
14180 core::mem::transmute_copy(&rgiidexclude),
14181 core::mem::transmute_copy(&lpexcludeprops),
14182 core::mem::transmute_copy(&uluiparam),
14183 core::mem::transmute_copy(&lpprogress),
14184 core::mem::transmute_copy(&lpinterface),
14185 core::mem::transmute_copy(&lpdestobj),
14186 core::mem::transmute_copy(&ulflags),
14187 core::mem::transmute_copy(&lppproblems),
14188 )
14189 .into()
14190 }
14191 }
14192 unsafe extern "system" fn CopyProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14193 this: *mut core::ffi::c_void,
14194 lpincludeprops: *mut SPropTagArray,
14195 uluiparam: usize,
14196 lpprogress: *mut core::ffi::c_void,
14197 lpinterface: *mut windows_core::GUID,
14198 lpdestobj: *mut core::ffi::c_void,
14199 ulflags: u32,
14200 lppproblems: *mut *mut SPropProblemArray,
14201 ) -> windows_core::HRESULT {
14202 unsafe {
14203 let this: &Identity =
14204 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14205 IMAPIProp_Impl::CopyProps(
14206 this,
14207 core::mem::transmute_copy(&lpincludeprops),
14208 core::mem::transmute_copy(&uluiparam),
14209 core::mem::transmute_copy(&lpprogress),
14210 core::mem::transmute_copy(&lpinterface),
14211 core::mem::transmute_copy(&lpdestobj),
14212 core::mem::transmute_copy(&ulflags),
14213 core::mem::transmute_copy(&lppproblems),
14214 )
14215 .into()
14216 }
14217 }
14218 unsafe extern "system" fn GetNamesFromIDs<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14219 this: *mut core::ffi::c_void,
14220 lppproptags: *mut *mut SPropTagArray,
14221 lppropsetguid: *mut windows_core::GUID,
14222 ulflags: u32,
14223 lpcpropnames: *mut u32,
14224 lppppropnames: *mut *mut *mut MAPINAMEID,
14225 ) -> windows_core::HRESULT {
14226 unsafe {
14227 let this: &Identity =
14228 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14229 IMAPIProp_Impl::GetNamesFromIDs(
14230 this,
14231 core::mem::transmute_copy(&lppproptags),
14232 core::mem::transmute_copy(&lppropsetguid),
14233 core::mem::transmute_copy(&ulflags),
14234 core::mem::transmute_copy(&lpcpropnames),
14235 core::mem::transmute_copy(&lppppropnames),
14236 )
14237 .into()
14238 }
14239 }
14240 unsafe extern "system" fn GetIDsFromNames<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14241 this: *mut core::ffi::c_void,
14242 cpropnames: u32,
14243 lpppropnames: *mut *mut MAPINAMEID,
14244 ulflags: u32,
14245 lppproptags: *mut *mut SPropTagArray,
14246 ) -> windows_core::HRESULT {
14247 unsafe {
14248 let this: &Identity =
14249 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14250 IMAPIProp_Impl::GetIDsFromNames(
14251 this,
14252 core::mem::transmute_copy(&cpropnames),
14253 core::mem::transmute_copy(&lpppropnames),
14254 core::mem::transmute_copy(&ulflags),
14255 core::mem::transmute_copy(&lppproptags),
14256 )
14257 .into()
14258 }
14259 }
14260 Self {
14261 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14262 GetLastError: GetLastError::<Identity, OFFSET>,
14263 SaveChanges: SaveChanges::<Identity, OFFSET>,
14264 GetProps: GetProps::<Identity, OFFSET>,
14265 GetPropList: GetPropList::<Identity, OFFSET>,
14266 OpenProperty: OpenProperty::<Identity, OFFSET>,
14267 SetProps: SetProps::<Identity, OFFSET>,
14268 DeleteProps: DeleteProps::<Identity, OFFSET>,
14269 CopyTo: CopyTo::<Identity, OFFSET>,
14270 CopyProps: CopyProps::<Identity, OFFSET>,
14271 GetNamesFromIDs: GetNamesFromIDs::<Identity, OFFSET>,
14272 GetIDsFromNames: GetIDsFromNames::<Identity, OFFSET>,
14273 }
14274 }
14275 pub fn matches(iid: &windows_core::GUID) -> bool {
14276 iid == &<IMAPIProp as windows_core::Interface>::IID
14277 }
14278}
14279impl windows_core::RuntimeName for IMAPIProp {}
14280pub const IMAPIProp_CopyProps: METHODS = METHODS(11i32);
14281pub const IMAPIProp_CopyTo: METHODS = METHODS(10i32);
14282pub const IMAPIProp_DeleteProps: METHODS = METHODS(9i32);
14283pub const IMAPIProp_GetIDsFromNames: METHODS = METHODS(13i32);
14284pub const IMAPIProp_GetLastError: METHODS = METHODS(3i32);
14285pub const IMAPIProp_GetNamesFromIDs: METHODS = METHODS(12i32);
14286pub const IMAPIProp_GetPropList: METHODS = METHODS(6i32);
14287pub const IMAPIProp_GetProps: METHODS = METHODS(5i32);
14288pub const IMAPIProp_OpenProperty: METHODS = METHODS(7i32);
14289pub const IMAPIProp_SaveChanges: METHODS = METHODS(4i32);
14290pub const IMAPIProp_SetProps: METHODS = METHODS(8i32);
14291windows_core::imp::define_interface!(
14292 IMAPIProviderShutdown,
14293 IMAPIProviderShutdown_Vtbl,
14294 0x00020398_0000_0000_c000_000000000046
14295);
14296windows_core::imp::interface_hierarchy!(IMAPIProviderShutdown, windows_core::IUnknown);
14297impl IMAPIProviderShutdown {
14298 pub unsafe fn QueryFastShutdown(&self) -> windows_core::Result<()> {
14299 unsafe {
14300 (windows_core::Interface::vtable(self).QueryFastShutdown)(
14301 windows_core::Interface::as_raw(self),
14302 )
14303 .ok()
14304 }
14305 }
14306 pub unsafe fn NotifyProcessShutdown(&self) -> windows_core::Result<()> {
14307 unsafe {
14308 (windows_core::Interface::vtable(self).NotifyProcessShutdown)(
14309 windows_core::Interface::as_raw(self),
14310 )
14311 .ok()
14312 }
14313 }
14314 pub unsafe fn DoFastShutdown(&self) -> windows_core::Result<()> {
14315 unsafe {
14316 (windows_core::Interface::vtable(self).DoFastShutdown)(windows_core::Interface::as_raw(
14317 self,
14318 ))
14319 .ok()
14320 }
14321 }
14322}
14323#[repr(C)]
14324pub struct IMAPIProviderShutdown_Vtbl {
14325 pub base__: windows_core::IUnknown_Vtbl,
14326 pub QueryFastShutdown:
14327 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
14328 pub NotifyProcessShutdown:
14329 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
14330 pub DoFastShutdown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
14331}
14332pub trait IMAPIProviderShutdown_Impl: windows_core::IUnknownImpl {
14333 fn QueryFastShutdown(&self) -> windows_core::Result<()>;
14334 fn NotifyProcessShutdown(&self) -> windows_core::Result<()>;
14335 fn DoFastShutdown(&self) -> windows_core::Result<()>;
14336}
14337impl IMAPIProviderShutdown_Vtbl {
14338 pub const fn new<Identity: IMAPIProviderShutdown_Impl, const OFFSET: isize>() -> Self {
14339 unsafe extern "system" fn QueryFastShutdown<
14340 Identity: IMAPIProviderShutdown_Impl,
14341 const OFFSET: isize,
14342 >(
14343 this: *mut core::ffi::c_void,
14344 ) -> windows_core::HRESULT {
14345 unsafe {
14346 let this: &Identity =
14347 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14348 IMAPIProviderShutdown_Impl::QueryFastShutdown(this).into()
14349 }
14350 }
14351 unsafe extern "system" fn NotifyProcessShutdown<
14352 Identity: IMAPIProviderShutdown_Impl,
14353 const OFFSET: isize,
14354 >(
14355 this: *mut core::ffi::c_void,
14356 ) -> windows_core::HRESULT {
14357 unsafe {
14358 let this: &Identity =
14359 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14360 IMAPIProviderShutdown_Impl::NotifyProcessShutdown(this).into()
14361 }
14362 }
14363 unsafe extern "system" fn DoFastShutdown<
14364 Identity: IMAPIProviderShutdown_Impl,
14365 const OFFSET: isize,
14366 >(
14367 this: *mut core::ffi::c_void,
14368 ) -> windows_core::HRESULT {
14369 unsafe {
14370 let this: &Identity =
14371 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14372 IMAPIProviderShutdown_Impl::DoFastShutdown(this).into()
14373 }
14374 }
14375 Self {
14376 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14377 QueryFastShutdown: QueryFastShutdown::<Identity, OFFSET>,
14378 NotifyProcessShutdown: NotifyProcessShutdown::<Identity, OFFSET>,
14379 DoFastShutdown: DoFastShutdown::<Identity, OFFSET>,
14380 }
14381 }
14382 pub fn matches(iid: &windows_core::GUID) -> bool {
14383 iid == &<IMAPIProviderShutdown as windows_core::Interface>::IID
14384 }
14385}
14386impl windows_core::RuntimeName for IMAPIProviderShutdown {}
14387windows_core::imp::define_interface!(
14388 IMAPISession,
14389 IMAPISession_Vtbl,
14390 0x00020300_0000_0000_c000_000000000046
14391);
14392windows_core::imp::interface_hierarchy!(IMAPISession, windows_core::IUnknown);
14393impl IMAPISession {
14394 pub unsafe fn GetLastError(
14395 &self,
14396 hresult: windows_core::HRESULT,
14397 ulflags: u32,
14398 lppmapierror: *mut *mut MAPIERROR,
14399 ) -> windows_core::Result<()> {
14400 unsafe {
14401 (windows_core::Interface::vtable(self).GetLastError)(
14402 windows_core::Interface::as_raw(self),
14403 hresult,
14404 ulflags,
14405 lppmapierror as _,
14406 )
14407 .ok()
14408 }
14409 }
14410 pub unsafe fn GetMsgStoresTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
14411 unsafe {
14412 let mut result__ = core::mem::zeroed();
14413 (windows_core::Interface::vtable(self).GetMsgStoresTable)(
14414 windows_core::Interface::as_raw(self),
14415 ulflags,
14416 &mut result__,
14417 )
14418 .and_then(|| windows_core::Type::from_abi(result__))
14419 }
14420 }
14421 pub unsafe fn OpenMsgStore(
14422 &self,
14423 uluiparam: usize,
14424 cbentryid: u32,
14425 lpentryid: *mut ENTRYID,
14426 lpinterface: *mut windows_core::GUID,
14427 ulflags: u32,
14428 lppmdb: *mut Option<IMsgStore>,
14429 ) -> windows_core::Result<()> {
14430 unsafe {
14431 (windows_core::Interface::vtable(self).OpenMsgStore)(
14432 windows_core::Interface::as_raw(self),
14433 uluiparam,
14434 cbentryid,
14435 lpentryid as _,
14436 lpinterface as _,
14437 ulflags,
14438 core::mem::transmute(lppmdb),
14439 )
14440 .ok()
14441 }
14442 }
14443 pub unsafe fn OpenAddressBook(
14444 &self,
14445 uluiparam: usize,
14446 lpinterface: *mut windows_core::GUID,
14447 ulflags: u32,
14448 lppadrbook: *mut Option<IAddrBook>,
14449 ) -> windows_core::Result<()> {
14450 unsafe {
14451 (windows_core::Interface::vtable(self).OpenAddressBook)(
14452 windows_core::Interface::as_raw(self),
14453 uluiparam,
14454 lpinterface as _,
14455 ulflags,
14456 core::mem::transmute(lppadrbook),
14457 )
14458 .ok()
14459 }
14460 }
14461 pub unsafe fn OpenProfileSection(
14462 &self,
14463 lpuid: *mut MAPIUID,
14464 lpinterface: *mut windows_core::GUID,
14465 ulflags: u32,
14466 lppprofsect: *mut Option<IProfSect>,
14467 ) -> windows_core::Result<()> {
14468 unsafe {
14469 (windows_core::Interface::vtable(self).OpenProfileSection)(
14470 windows_core::Interface::as_raw(self),
14471 lpuid as _,
14472 lpinterface as _,
14473 ulflags,
14474 core::mem::transmute(lppprofsect),
14475 )
14476 .ok()
14477 }
14478 }
14479 pub unsafe fn GetStatusTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
14480 unsafe {
14481 let mut result__ = core::mem::zeroed();
14482 (windows_core::Interface::vtable(self).GetStatusTable)(
14483 windows_core::Interface::as_raw(self),
14484 ulflags,
14485 &mut result__,
14486 )
14487 .and_then(|| windows_core::Type::from_abi(result__))
14488 }
14489 }
14490 pub unsafe fn OpenEntry(
14491 &self,
14492 cbentryid: u32,
14493 lpentryid: *mut ENTRYID,
14494 lpinterface: *mut windows_core::GUID,
14495 ulflags: u32,
14496 lpulobjtype: *mut u32,
14497 lppunk: *mut Option<windows_core::IUnknown>,
14498 ) -> windows_core::Result<()> {
14499 unsafe {
14500 (windows_core::Interface::vtable(self).OpenEntry)(
14501 windows_core::Interface::as_raw(self),
14502 cbentryid,
14503 lpentryid as _,
14504 lpinterface as _,
14505 ulflags,
14506 lpulobjtype as _,
14507 core::mem::transmute(lppunk),
14508 )
14509 .ok()
14510 }
14511 }
14512 pub unsafe fn CompareEntryIDs(
14513 &self,
14514 cbentryid1: u32,
14515 lpentryid1: *mut ENTRYID,
14516 cbentryid2: u32,
14517 lpentryid2: *mut ENTRYID,
14518 ulflags: u32,
14519 lpulresult: *mut u32,
14520 ) -> windows_core::Result<()> {
14521 unsafe {
14522 (windows_core::Interface::vtable(self).CompareEntryIDs)(
14523 windows_core::Interface::as_raw(self),
14524 cbentryid1,
14525 lpentryid1 as _,
14526 cbentryid2,
14527 lpentryid2 as _,
14528 ulflags,
14529 lpulresult as _,
14530 )
14531 .ok()
14532 }
14533 }
14534 pub unsafe fn Advise<P3>(
14535 &self,
14536 cbentryid: u32,
14537 lpentryid: *mut ENTRYID,
14538 uleventmask: u32,
14539 lpadvisesink: P3,
14540 lpulconnection: *mut usize,
14541 ) -> windows_core::Result<()>
14542 where
14543 P3: windows_core::Param<IMAPIAdviseSink>,
14544 {
14545 unsafe {
14546 (windows_core::Interface::vtable(self).Advise)(
14547 windows_core::Interface::as_raw(self),
14548 cbentryid,
14549 lpentryid as _,
14550 uleventmask,
14551 lpadvisesink.param().abi(),
14552 lpulconnection as _,
14553 )
14554 .ok()
14555 }
14556 }
14557 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
14558 unsafe {
14559 (windows_core::Interface::vtable(self).Unadvise)(
14560 windows_core::Interface::as_raw(self),
14561 ulconnection,
14562 )
14563 .ok()
14564 }
14565 }
14566 pub unsafe fn MessageOptions<P3>(
14567 &self,
14568 uluiparam: usize,
14569 ulflags: u32,
14570 lpszadrtype: *mut i8,
14571 lpmessage: P3,
14572 ) -> windows_core::Result<()>
14573 where
14574 P3: windows_core::Param<IMessage>,
14575 {
14576 unsafe {
14577 (windows_core::Interface::vtable(self).MessageOptions)(
14578 windows_core::Interface::as_raw(self),
14579 uluiparam,
14580 ulflags,
14581 lpszadrtype as _,
14582 lpmessage.param().abi(),
14583 )
14584 .ok()
14585 }
14586 }
14587 pub unsafe fn QueryDefaultMessageOpt(
14588 &self,
14589 lpszadrtype: *mut i8,
14590 ulflags: u32,
14591 lpcvalues: *mut u32,
14592 lppoptions: *mut *mut SPropValue,
14593 ) -> windows_core::Result<()> {
14594 unsafe {
14595 (windows_core::Interface::vtable(self).QueryDefaultMessageOpt)(
14596 windows_core::Interface::as_raw(self),
14597 lpszadrtype as _,
14598 ulflags,
14599 lpcvalues as _,
14600 lppoptions as _,
14601 )
14602 .ok()
14603 }
14604 }
14605 pub unsafe fn EnumAdrTypes(
14606 &self,
14607 ulflags: u32,
14608 lpcadrtypes: *mut u32,
14609 lpppszadrtypes: *mut *mut *mut i8,
14610 ) -> windows_core::Result<()> {
14611 unsafe {
14612 (windows_core::Interface::vtable(self).EnumAdrTypes)(
14613 windows_core::Interface::as_raw(self),
14614 ulflags,
14615 lpcadrtypes as _,
14616 lpppszadrtypes as _,
14617 )
14618 .ok()
14619 }
14620 }
14621 pub unsafe fn QueryIdentity(
14622 &self,
14623 lpcbentryid: *mut u32,
14624 lppentryid: *mut *mut ENTRYID,
14625 ) -> windows_core::Result<()> {
14626 unsafe {
14627 (windows_core::Interface::vtable(self).QueryIdentity)(
14628 windows_core::Interface::as_raw(self),
14629 lpcbentryid as _,
14630 lppentryid as _,
14631 )
14632 .ok()
14633 }
14634 }
14635 pub unsafe fn Logoff(
14636 &self,
14637 uluiparam: usize,
14638 ulflags: u32,
14639 ulreserved: u32,
14640 ) -> windows_core::Result<()> {
14641 unsafe {
14642 (windows_core::Interface::vtable(self).Logoff)(
14643 windows_core::Interface::as_raw(self),
14644 uluiparam,
14645 ulflags,
14646 ulreserved,
14647 )
14648 .ok()
14649 }
14650 }
14651 pub unsafe fn SetDefaultStore(
14652 &self,
14653 ulflags: u32,
14654 cbentryid: u32,
14655 lpentryid: *mut ENTRYID,
14656 ) -> windows_core::Result<()> {
14657 unsafe {
14658 (windows_core::Interface::vtable(self).SetDefaultStore)(
14659 windows_core::Interface::as_raw(self),
14660 ulflags,
14661 cbentryid,
14662 lpentryid as _,
14663 )
14664 .ok()
14665 }
14666 }
14667 pub unsafe fn AdminServices(&self, ulflags: u32) -> windows_core::Result<IMsgServiceAdmin> {
14668 unsafe {
14669 let mut result__ = core::mem::zeroed();
14670 (windows_core::Interface::vtable(self).AdminServices)(
14671 windows_core::Interface::as_raw(self),
14672 ulflags,
14673 &mut result__,
14674 )
14675 .and_then(|| windows_core::Type::from_abi(result__))
14676 }
14677 }
14678 pub unsafe fn ShowForm<P1, P2, P5, P10>(
14679 &self,
14680 uluiparam: usize,
14681 lpmsgstore: P1,
14682 lpparentfolder: P2,
14683 lpinterface: *mut windows_core::GUID,
14684 ulmessagetoken: usize,
14685 lpmessagesent: P5,
14686 ulflags: u32,
14687 ulmessagestatus: u32,
14688 ulmessageflags: u32,
14689 ulaccess: u32,
14690 lpszmessageclass: P10,
14691 ) -> windows_core::Result<()>
14692 where
14693 P1: windows_core::Param<IMsgStore>,
14694 P2: windows_core::Param<IMAPIFolder>,
14695 P5: windows_core::Param<IMessage>,
14696 P10: windows_core::Param<windows_core::PCSTR>,
14697 {
14698 unsafe {
14699 (windows_core::Interface::vtable(self).ShowForm)(
14700 windows_core::Interface::as_raw(self),
14701 uluiparam,
14702 lpmsgstore.param().abi(),
14703 lpparentfolder.param().abi(),
14704 lpinterface as _,
14705 ulmessagetoken,
14706 lpmessagesent.param().abi(),
14707 ulflags,
14708 ulmessagestatus,
14709 ulmessageflags,
14710 ulaccess,
14711 lpszmessageclass.param().abi(),
14712 )
14713 .ok()
14714 }
14715 }
14716 pub unsafe fn PrepareForm<P1>(
14717 &self,
14718 lpinterface: *mut windows_core::GUID,
14719 lpmessage: P1,
14720 lpulmessagetoken: *mut usize,
14721 ) -> windows_core::Result<()>
14722 where
14723 P1: windows_core::Param<IMessage>,
14724 {
14725 unsafe {
14726 (windows_core::Interface::vtable(self).PrepareForm)(
14727 windows_core::Interface::as_raw(self),
14728 lpinterface as _,
14729 lpmessage.param().abi(),
14730 lpulmessagetoken as _,
14731 )
14732 .ok()
14733 }
14734 }
14735}
14736#[repr(C)]
14737pub struct IMAPISession_Vtbl {
14738 pub base__: windows_core::IUnknown_Vtbl,
14739 pub GetLastError: unsafe extern "system" fn(
14740 *mut core::ffi::c_void,
14741 windows_core::HRESULT,
14742 u32,
14743 *mut *mut MAPIERROR,
14744 ) -> windows_core::HRESULT,
14745 pub GetMsgStoresTable: unsafe extern "system" fn(
14746 *mut core::ffi::c_void,
14747 u32,
14748 *mut *mut core::ffi::c_void,
14749 ) -> windows_core::HRESULT,
14750 pub OpenMsgStore: unsafe extern "system" fn(
14751 *mut core::ffi::c_void,
14752 usize,
14753 u32,
14754 *mut ENTRYID,
14755 *mut windows_core::GUID,
14756 u32,
14757 *mut *mut core::ffi::c_void,
14758 ) -> windows_core::HRESULT,
14759 pub OpenAddressBook: unsafe extern "system" fn(
14760 *mut core::ffi::c_void,
14761 usize,
14762 *mut windows_core::GUID,
14763 u32,
14764 *mut *mut core::ffi::c_void,
14765 ) -> windows_core::HRESULT,
14766 pub OpenProfileSection: unsafe extern "system" fn(
14767 *mut core::ffi::c_void,
14768 *mut MAPIUID,
14769 *mut windows_core::GUID,
14770 u32,
14771 *mut *mut core::ffi::c_void,
14772 ) -> windows_core::HRESULT,
14773 pub GetStatusTable: unsafe extern "system" fn(
14774 *mut core::ffi::c_void,
14775 u32,
14776 *mut *mut core::ffi::c_void,
14777 ) -> windows_core::HRESULT,
14778 pub OpenEntry: unsafe extern "system" fn(
14779 *mut core::ffi::c_void,
14780 u32,
14781 *mut ENTRYID,
14782 *mut windows_core::GUID,
14783 u32,
14784 *mut u32,
14785 *mut *mut core::ffi::c_void,
14786 ) -> windows_core::HRESULT,
14787 pub CompareEntryIDs: unsafe extern "system" fn(
14788 *mut core::ffi::c_void,
14789 u32,
14790 *mut ENTRYID,
14791 u32,
14792 *mut ENTRYID,
14793 u32,
14794 *mut u32,
14795 ) -> windows_core::HRESULT,
14796 pub Advise: unsafe extern "system" fn(
14797 *mut core::ffi::c_void,
14798 u32,
14799 *mut ENTRYID,
14800 u32,
14801 *mut core::ffi::c_void,
14802 *mut usize,
14803 ) -> windows_core::HRESULT,
14804 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
14805 pub MessageOptions: unsafe extern "system" fn(
14806 *mut core::ffi::c_void,
14807 usize,
14808 u32,
14809 *mut i8,
14810 *mut core::ffi::c_void,
14811 ) -> windows_core::HRESULT,
14812 pub QueryDefaultMessageOpt: unsafe extern "system" fn(
14813 *mut core::ffi::c_void,
14814 *mut i8,
14815 u32,
14816 *mut u32,
14817 *mut *mut SPropValue,
14818 ) -> windows_core::HRESULT,
14819 pub EnumAdrTypes: unsafe extern "system" fn(
14820 *mut core::ffi::c_void,
14821 u32,
14822 *mut u32,
14823 *mut *mut *mut i8,
14824 ) -> windows_core::HRESULT,
14825 pub QueryIdentity: unsafe extern "system" fn(
14826 *mut core::ffi::c_void,
14827 *mut u32,
14828 *mut *mut ENTRYID,
14829 ) -> windows_core::HRESULT,
14830 pub Logoff:
14831 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32, u32) -> windows_core::HRESULT,
14832 pub SetDefaultStore: unsafe extern "system" fn(
14833 *mut core::ffi::c_void,
14834 u32,
14835 u32,
14836 *mut ENTRYID,
14837 ) -> windows_core::HRESULT,
14838 pub AdminServices: unsafe extern "system" fn(
14839 *mut core::ffi::c_void,
14840 u32,
14841 *mut *mut core::ffi::c_void,
14842 ) -> windows_core::HRESULT,
14843 pub ShowForm: unsafe extern "system" fn(
14844 *mut core::ffi::c_void,
14845 usize,
14846 *mut core::ffi::c_void,
14847 *mut core::ffi::c_void,
14848 *mut windows_core::GUID,
14849 usize,
14850 *mut core::ffi::c_void,
14851 u32,
14852 u32,
14853 u32,
14854 u32,
14855 windows_core::PCSTR,
14856 ) -> windows_core::HRESULT,
14857 pub PrepareForm: unsafe extern "system" fn(
14858 *mut core::ffi::c_void,
14859 *mut windows_core::GUID,
14860 *mut core::ffi::c_void,
14861 *mut usize,
14862 ) -> windows_core::HRESULT,
14863}
14864pub trait IMAPISession_Impl: windows_core::IUnknownImpl {
14865 fn GetLastError(
14866 &self,
14867 hresult: windows_core::HRESULT,
14868 ulflags: u32,
14869 lppmapierror: *mut *mut MAPIERROR,
14870 ) -> windows_core::Result<()>;
14871 fn GetMsgStoresTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
14872 fn OpenMsgStore(
14873 &self,
14874 uluiparam: usize,
14875 cbentryid: u32,
14876 lpentryid: *mut ENTRYID,
14877 lpinterface: *mut windows_core::GUID,
14878 ulflags: u32,
14879 lppmdb: windows_core::OutRef<'_, IMsgStore>,
14880 ) -> windows_core::Result<()>;
14881 fn OpenAddressBook(
14882 &self,
14883 uluiparam: usize,
14884 lpinterface: *mut windows_core::GUID,
14885 ulflags: u32,
14886 lppadrbook: windows_core::OutRef<'_, IAddrBook>,
14887 ) -> windows_core::Result<()>;
14888 fn OpenProfileSection(
14889 &self,
14890 lpuid: *mut MAPIUID,
14891 lpinterface: *mut windows_core::GUID,
14892 ulflags: u32,
14893 lppprofsect: windows_core::OutRef<'_, IProfSect>,
14894 ) -> windows_core::Result<()>;
14895 fn GetStatusTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
14896 fn OpenEntry(
14897 &self,
14898 cbentryid: u32,
14899 lpentryid: *mut ENTRYID,
14900 lpinterface: *mut windows_core::GUID,
14901 ulflags: u32,
14902 lpulobjtype: *mut u32,
14903 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
14904 ) -> windows_core::Result<()>;
14905 fn CompareEntryIDs(
14906 &self,
14907 cbentryid1: u32,
14908 lpentryid1: *mut ENTRYID,
14909 cbentryid2: u32,
14910 lpentryid2: *mut ENTRYID,
14911 ulflags: u32,
14912 lpulresult: *mut u32,
14913 ) -> windows_core::Result<()>;
14914 fn Advise(
14915 &self,
14916 cbentryid: u32,
14917 lpentryid: *mut ENTRYID,
14918 uleventmask: u32,
14919 lpadvisesink: windows_core::Ref<'_, IMAPIAdviseSink>,
14920 lpulconnection: *mut usize,
14921 ) -> windows_core::Result<()>;
14922 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
14923 fn MessageOptions(
14924 &self,
14925 uluiparam: usize,
14926 ulflags: u32,
14927 lpszadrtype: *mut i8,
14928 lpmessage: windows_core::Ref<'_, IMessage>,
14929 ) -> windows_core::Result<()>;
14930 fn QueryDefaultMessageOpt(
14931 &self,
14932 lpszadrtype: *mut i8,
14933 ulflags: u32,
14934 lpcvalues: *mut u32,
14935 lppoptions: *mut *mut SPropValue,
14936 ) -> windows_core::Result<()>;
14937 fn EnumAdrTypes(
14938 &self,
14939 ulflags: u32,
14940 lpcadrtypes: *mut u32,
14941 lpppszadrtypes: *mut *mut *mut i8,
14942 ) -> windows_core::Result<()>;
14943 fn QueryIdentity(
14944 &self,
14945 lpcbentryid: *mut u32,
14946 lppentryid: *mut *mut ENTRYID,
14947 ) -> windows_core::Result<()>;
14948 fn Logoff(&self, uluiparam: usize, ulflags: u32, ulreserved: u32) -> windows_core::Result<()>;
14949 fn SetDefaultStore(
14950 &self,
14951 ulflags: u32,
14952 cbentryid: u32,
14953 lpentryid: *mut ENTRYID,
14954 ) -> windows_core::Result<()>;
14955 fn AdminServices(&self, ulflags: u32) -> windows_core::Result<IMsgServiceAdmin>;
14956 fn ShowForm(
14957 &self,
14958 uluiparam: usize,
14959 lpmsgstore: windows_core::Ref<'_, IMsgStore>,
14960 lpparentfolder: windows_core::Ref<'_, IMAPIFolder>,
14961 lpinterface: *mut windows_core::GUID,
14962 ulmessagetoken: usize,
14963 lpmessagesent: windows_core::Ref<'_, IMessage>,
14964 ulflags: u32,
14965 ulmessagestatus: u32,
14966 ulmessageflags: u32,
14967 ulaccess: u32,
14968 lpszmessageclass: &windows_core::PCSTR,
14969 ) -> windows_core::Result<()>;
14970 fn PrepareForm(
14971 &self,
14972 lpinterface: *mut windows_core::GUID,
14973 lpmessage: windows_core::Ref<'_, IMessage>,
14974 lpulmessagetoken: *mut usize,
14975 ) -> windows_core::Result<()>;
14976}
14977impl IMAPISession_Vtbl {
14978 pub const fn new<Identity: IMAPISession_Impl, const OFFSET: isize>() -> Self {
14979 unsafe extern "system" fn GetLastError<Identity: IMAPISession_Impl, const OFFSET: isize>(
14980 this: *mut core::ffi::c_void,
14981 hresult: windows_core::HRESULT,
14982 ulflags: u32,
14983 lppmapierror: *mut *mut MAPIERROR,
14984 ) -> windows_core::HRESULT {
14985 unsafe {
14986 let this: &Identity =
14987 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14988 IMAPISession_Impl::GetLastError(
14989 this,
14990 core::mem::transmute_copy(&hresult),
14991 core::mem::transmute_copy(&ulflags),
14992 core::mem::transmute_copy(&lppmapierror),
14993 )
14994 .into()
14995 }
14996 }
14997 unsafe extern "system" fn GetMsgStoresTable<
14998 Identity: IMAPISession_Impl,
14999 const OFFSET: isize,
15000 >(
15001 this: *mut core::ffi::c_void,
15002 ulflags: u32,
15003 lpptable: *mut *mut core::ffi::c_void,
15004 ) -> windows_core::HRESULT {
15005 unsafe {
15006 let this: &Identity =
15007 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15008 match IMAPISession_Impl::GetMsgStoresTable(
15009 this,
15010 core::mem::transmute_copy(&ulflags),
15011 ) {
15012 Ok(ok__) => {
15013 lpptable.write(core::mem::transmute(ok__));
15014 windows_core::HRESULT(0)
15015 }
15016 Err(err) => err.into(),
15017 }
15018 }
15019 }
15020 unsafe extern "system" fn OpenMsgStore<Identity: IMAPISession_Impl, const OFFSET: isize>(
15021 this: *mut core::ffi::c_void,
15022 uluiparam: usize,
15023 cbentryid: u32,
15024 lpentryid: *mut ENTRYID,
15025 lpinterface: *mut windows_core::GUID,
15026 ulflags: u32,
15027 lppmdb: *mut *mut core::ffi::c_void,
15028 ) -> windows_core::HRESULT {
15029 unsafe {
15030 let this: &Identity =
15031 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15032 IMAPISession_Impl::OpenMsgStore(
15033 this,
15034 core::mem::transmute_copy(&uluiparam),
15035 core::mem::transmute_copy(&cbentryid),
15036 core::mem::transmute_copy(&lpentryid),
15037 core::mem::transmute_copy(&lpinterface),
15038 core::mem::transmute_copy(&ulflags),
15039 core::mem::transmute_copy(&lppmdb),
15040 )
15041 .into()
15042 }
15043 }
15044 unsafe extern "system" fn OpenAddressBook<
15045 Identity: IMAPISession_Impl,
15046 const OFFSET: isize,
15047 >(
15048 this: *mut core::ffi::c_void,
15049 uluiparam: usize,
15050 lpinterface: *mut windows_core::GUID,
15051 ulflags: u32,
15052 lppadrbook: *mut *mut core::ffi::c_void,
15053 ) -> windows_core::HRESULT {
15054 unsafe {
15055 let this: &Identity =
15056 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15057 IMAPISession_Impl::OpenAddressBook(
15058 this,
15059 core::mem::transmute_copy(&uluiparam),
15060 core::mem::transmute_copy(&lpinterface),
15061 core::mem::transmute_copy(&ulflags),
15062 core::mem::transmute_copy(&lppadrbook),
15063 )
15064 .into()
15065 }
15066 }
15067 unsafe extern "system" fn OpenProfileSection<
15068 Identity: IMAPISession_Impl,
15069 const OFFSET: isize,
15070 >(
15071 this: *mut core::ffi::c_void,
15072 lpuid: *mut MAPIUID,
15073 lpinterface: *mut windows_core::GUID,
15074 ulflags: u32,
15075 lppprofsect: *mut *mut core::ffi::c_void,
15076 ) -> windows_core::HRESULT {
15077 unsafe {
15078 let this: &Identity =
15079 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15080 IMAPISession_Impl::OpenProfileSection(
15081 this,
15082 core::mem::transmute_copy(&lpuid),
15083 core::mem::transmute_copy(&lpinterface),
15084 core::mem::transmute_copy(&ulflags),
15085 core::mem::transmute_copy(&lppprofsect),
15086 )
15087 .into()
15088 }
15089 }
15090 unsafe extern "system" fn GetStatusTable<
15091 Identity: IMAPISession_Impl,
15092 const OFFSET: isize,
15093 >(
15094 this: *mut core::ffi::c_void,
15095 ulflags: u32,
15096 lpptable: *mut *mut core::ffi::c_void,
15097 ) -> windows_core::HRESULT {
15098 unsafe {
15099 let this: &Identity =
15100 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15101 match IMAPISession_Impl::GetStatusTable(this, core::mem::transmute_copy(&ulflags)) {
15102 Ok(ok__) => {
15103 lpptable.write(core::mem::transmute(ok__));
15104 windows_core::HRESULT(0)
15105 }
15106 Err(err) => err.into(),
15107 }
15108 }
15109 }
15110 unsafe extern "system" fn OpenEntry<Identity: IMAPISession_Impl, const OFFSET: isize>(
15111 this: *mut core::ffi::c_void,
15112 cbentryid: u32,
15113 lpentryid: *mut ENTRYID,
15114 lpinterface: *mut windows_core::GUID,
15115 ulflags: u32,
15116 lpulobjtype: *mut u32,
15117 lppunk: *mut *mut core::ffi::c_void,
15118 ) -> windows_core::HRESULT {
15119 unsafe {
15120 let this: &Identity =
15121 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15122 IMAPISession_Impl::OpenEntry(
15123 this,
15124 core::mem::transmute_copy(&cbentryid),
15125 core::mem::transmute_copy(&lpentryid),
15126 core::mem::transmute_copy(&lpinterface),
15127 core::mem::transmute_copy(&ulflags),
15128 core::mem::transmute_copy(&lpulobjtype),
15129 core::mem::transmute_copy(&lppunk),
15130 )
15131 .into()
15132 }
15133 }
15134 unsafe extern "system" fn CompareEntryIDs<
15135 Identity: IMAPISession_Impl,
15136 const OFFSET: isize,
15137 >(
15138 this: *mut core::ffi::c_void,
15139 cbentryid1: u32,
15140 lpentryid1: *mut ENTRYID,
15141 cbentryid2: u32,
15142 lpentryid2: *mut ENTRYID,
15143 ulflags: u32,
15144 lpulresult: *mut u32,
15145 ) -> windows_core::HRESULT {
15146 unsafe {
15147 let this: &Identity =
15148 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15149 IMAPISession_Impl::CompareEntryIDs(
15150 this,
15151 core::mem::transmute_copy(&cbentryid1),
15152 core::mem::transmute_copy(&lpentryid1),
15153 core::mem::transmute_copy(&cbentryid2),
15154 core::mem::transmute_copy(&lpentryid2),
15155 core::mem::transmute_copy(&ulflags),
15156 core::mem::transmute_copy(&lpulresult),
15157 )
15158 .into()
15159 }
15160 }
15161 unsafe extern "system" fn Advise<Identity: IMAPISession_Impl, const OFFSET: isize>(
15162 this: *mut core::ffi::c_void,
15163 cbentryid: u32,
15164 lpentryid: *mut ENTRYID,
15165 uleventmask: u32,
15166 lpadvisesink: *mut core::ffi::c_void,
15167 lpulconnection: *mut usize,
15168 ) -> windows_core::HRESULT {
15169 unsafe {
15170 let this: &Identity =
15171 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15172 IMAPISession_Impl::Advise(
15173 this,
15174 core::mem::transmute_copy(&cbentryid),
15175 core::mem::transmute_copy(&lpentryid),
15176 core::mem::transmute_copy(&uleventmask),
15177 core::mem::transmute_copy(&lpadvisesink),
15178 core::mem::transmute_copy(&lpulconnection),
15179 )
15180 .into()
15181 }
15182 }
15183 unsafe extern "system" fn Unadvise<Identity: IMAPISession_Impl, const OFFSET: isize>(
15184 this: *mut core::ffi::c_void,
15185 ulconnection: usize,
15186 ) -> windows_core::HRESULT {
15187 unsafe {
15188 let this: &Identity =
15189 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15190 IMAPISession_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
15191 }
15192 }
15193 unsafe extern "system" fn MessageOptions<
15194 Identity: IMAPISession_Impl,
15195 const OFFSET: isize,
15196 >(
15197 this: *mut core::ffi::c_void,
15198 uluiparam: usize,
15199 ulflags: u32,
15200 lpszadrtype: *mut i8,
15201 lpmessage: *mut core::ffi::c_void,
15202 ) -> windows_core::HRESULT {
15203 unsafe {
15204 let this: &Identity =
15205 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15206 IMAPISession_Impl::MessageOptions(
15207 this,
15208 core::mem::transmute_copy(&uluiparam),
15209 core::mem::transmute_copy(&ulflags),
15210 core::mem::transmute_copy(&lpszadrtype),
15211 core::mem::transmute_copy(&lpmessage),
15212 )
15213 .into()
15214 }
15215 }
15216 unsafe extern "system" fn QueryDefaultMessageOpt<
15217 Identity: IMAPISession_Impl,
15218 const OFFSET: isize,
15219 >(
15220 this: *mut core::ffi::c_void,
15221 lpszadrtype: *mut i8,
15222 ulflags: u32,
15223 lpcvalues: *mut u32,
15224 lppoptions: *mut *mut SPropValue,
15225 ) -> windows_core::HRESULT {
15226 unsafe {
15227 let this: &Identity =
15228 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15229 IMAPISession_Impl::QueryDefaultMessageOpt(
15230 this,
15231 core::mem::transmute_copy(&lpszadrtype),
15232 core::mem::transmute_copy(&ulflags),
15233 core::mem::transmute_copy(&lpcvalues),
15234 core::mem::transmute_copy(&lppoptions),
15235 )
15236 .into()
15237 }
15238 }
15239 unsafe extern "system" fn EnumAdrTypes<Identity: IMAPISession_Impl, const OFFSET: isize>(
15240 this: *mut core::ffi::c_void,
15241 ulflags: u32,
15242 lpcadrtypes: *mut u32,
15243 lpppszadrtypes: *mut *mut *mut i8,
15244 ) -> windows_core::HRESULT {
15245 unsafe {
15246 let this: &Identity =
15247 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15248 IMAPISession_Impl::EnumAdrTypes(
15249 this,
15250 core::mem::transmute_copy(&ulflags),
15251 core::mem::transmute_copy(&lpcadrtypes),
15252 core::mem::transmute_copy(&lpppszadrtypes),
15253 )
15254 .into()
15255 }
15256 }
15257 unsafe extern "system" fn QueryIdentity<
15258 Identity: IMAPISession_Impl,
15259 const OFFSET: isize,
15260 >(
15261 this: *mut core::ffi::c_void,
15262 lpcbentryid: *mut u32,
15263 lppentryid: *mut *mut ENTRYID,
15264 ) -> windows_core::HRESULT {
15265 unsafe {
15266 let this: &Identity =
15267 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15268 IMAPISession_Impl::QueryIdentity(
15269 this,
15270 core::mem::transmute_copy(&lpcbentryid),
15271 core::mem::transmute_copy(&lppentryid),
15272 )
15273 .into()
15274 }
15275 }
15276 unsafe extern "system" fn Logoff<Identity: IMAPISession_Impl, const OFFSET: isize>(
15277 this: *mut core::ffi::c_void,
15278 uluiparam: usize,
15279 ulflags: u32,
15280 ulreserved: u32,
15281 ) -> windows_core::HRESULT {
15282 unsafe {
15283 let this: &Identity =
15284 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15285 IMAPISession_Impl::Logoff(
15286 this,
15287 core::mem::transmute_copy(&uluiparam),
15288 core::mem::transmute_copy(&ulflags),
15289 core::mem::transmute_copy(&ulreserved),
15290 )
15291 .into()
15292 }
15293 }
15294 unsafe extern "system" fn SetDefaultStore<
15295 Identity: IMAPISession_Impl,
15296 const OFFSET: isize,
15297 >(
15298 this: *mut core::ffi::c_void,
15299 ulflags: u32,
15300 cbentryid: u32,
15301 lpentryid: *mut ENTRYID,
15302 ) -> windows_core::HRESULT {
15303 unsafe {
15304 let this: &Identity =
15305 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15306 IMAPISession_Impl::SetDefaultStore(
15307 this,
15308 core::mem::transmute_copy(&ulflags),
15309 core::mem::transmute_copy(&cbentryid),
15310 core::mem::transmute_copy(&lpentryid),
15311 )
15312 .into()
15313 }
15314 }
15315 unsafe extern "system" fn AdminServices<
15316 Identity: IMAPISession_Impl,
15317 const OFFSET: isize,
15318 >(
15319 this: *mut core::ffi::c_void,
15320 ulflags: u32,
15321 lppserviceadmin: *mut *mut core::ffi::c_void,
15322 ) -> windows_core::HRESULT {
15323 unsafe {
15324 let this: &Identity =
15325 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15326 match IMAPISession_Impl::AdminServices(this, core::mem::transmute_copy(&ulflags)) {
15327 Ok(ok__) => {
15328 lppserviceadmin.write(core::mem::transmute(ok__));
15329 windows_core::HRESULT(0)
15330 }
15331 Err(err) => err.into(),
15332 }
15333 }
15334 }
15335 unsafe extern "system" fn ShowForm<Identity: IMAPISession_Impl, const OFFSET: isize>(
15336 this: *mut core::ffi::c_void,
15337 uluiparam: usize,
15338 lpmsgstore: *mut core::ffi::c_void,
15339 lpparentfolder: *mut core::ffi::c_void,
15340 lpinterface: *mut windows_core::GUID,
15341 ulmessagetoken: usize,
15342 lpmessagesent: *mut core::ffi::c_void,
15343 ulflags: u32,
15344 ulmessagestatus: u32,
15345 ulmessageflags: u32,
15346 ulaccess: u32,
15347 lpszmessageclass: windows_core::PCSTR,
15348 ) -> windows_core::HRESULT {
15349 unsafe {
15350 let this: &Identity =
15351 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15352 IMAPISession_Impl::ShowForm(
15353 this,
15354 core::mem::transmute_copy(&uluiparam),
15355 core::mem::transmute_copy(&lpmsgstore),
15356 core::mem::transmute_copy(&lpparentfolder),
15357 core::mem::transmute_copy(&lpinterface),
15358 core::mem::transmute_copy(&ulmessagetoken),
15359 core::mem::transmute_copy(&lpmessagesent),
15360 core::mem::transmute_copy(&ulflags),
15361 core::mem::transmute_copy(&ulmessagestatus),
15362 core::mem::transmute_copy(&ulmessageflags),
15363 core::mem::transmute_copy(&ulaccess),
15364 core::mem::transmute(&lpszmessageclass),
15365 )
15366 .into()
15367 }
15368 }
15369 unsafe extern "system" fn PrepareForm<Identity: IMAPISession_Impl, const OFFSET: isize>(
15370 this: *mut core::ffi::c_void,
15371 lpinterface: *mut windows_core::GUID,
15372 lpmessage: *mut core::ffi::c_void,
15373 lpulmessagetoken: *mut usize,
15374 ) -> windows_core::HRESULT {
15375 unsafe {
15376 let this: &Identity =
15377 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15378 IMAPISession_Impl::PrepareForm(
15379 this,
15380 core::mem::transmute_copy(&lpinterface),
15381 core::mem::transmute_copy(&lpmessage),
15382 core::mem::transmute_copy(&lpulmessagetoken),
15383 )
15384 .into()
15385 }
15386 }
15387 Self {
15388 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15389 GetLastError: GetLastError::<Identity, OFFSET>,
15390 GetMsgStoresTable: GetMsgStoresTable::<Identity, OFFSET>,
15391 OpenMsgStore: OpenMsgStore::<Identity, OFFSET>,
15392 OpenAddressBook: OpenAddressBook::<Identity, OFFSET>,
15393 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
15394 GetStatusTable: GetStatusTable::<Identity, OFFSET>,
15395 OpenEntry: OpenEntry::<Identity, OFFSET>,
15396 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
15397 Advise: Advise::<Identity, OFFSET>,
15398 Unadvise: Unadvise::<Identity, OFFSET>,
15399 MessageOptions: MessageOptions::<Identity, OFFSET>,
15400 QueryDefaultMessageOpt: QueryDefaultMessageOpt::<Identity, OFFSET>,
15401 EnumAdrTypes: EnumAdrTypes::<Identity, OFFSET>,
15402 QueryIdentity: QueryIdentity::<Identity, OFFSET>,
15403 Logoff: Logoff::<Identity, OFFSET>,
15404 SetDefaultStore: SetDefaultStore::<Identity, OFFSET>,
15405 AdminServices: AdminServices::<Identity, OFFSET>,
15406 ShowForm: ShowForm::<Identity, OFFSET>,
15407 PrepareForm: PrepareForm::<Identity, OFFSET>,
15408 }
15409 }
15410 pub fn matches(iid: &windows_core::GUID) -> bool {
15411 iid == &<IMAPISession as windows_core::Interface>::IID
15412 }
15413}
15414impl windows_core::RuntimeName for IMAPISession {}
15415windows_core::imp::define_interface!(
15416 IMAPIStatus,
15417 IMAPIStatus_Vtbl,
15418 0x00020305_0000_0000_c000_000000000046
15419);
15420impl core::ops::Deref for IMAPIStatus {
15421 type Target = IMAPIProp;
15422 fn deref(&self) -> &Self::Target {
15423 unsafe { core::mem::transmute(self) }
15424 }
15425}
15426windows_core::imp::interface_hierarchy!(IMAPIStatus, windows_core::IUnknown, IMAPIProp);
15427impl IMAPIStatus {
15428 pub unsafe fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()> {
15429 unsafe {
15430 (windows_core::Interface::vtable(self).ValidateState)(
15431 windows_core::Interface::as_raw(self),
15432 uluiparam,
15433 ulflags,
15434 )
15435 .ok()
15436 }
15437 }
15438 pub unsafe fn SettingsDialog(
15439 &self,
15440 uluiparam: usize,
15441 ulflags: u32,
15442 ) -> windows_core::Result<()> {
15443 unsafe {
15444 (windows_core::Interface::vtable(self).SettingsDialog)(
15445 windows_core::Interface::as_raw(self),
15446 uluiparam,
15447 ulflags,
15448 )
15449 .ok()
15450 }
15451 }
15452 pub unsafe fn ChangePassword(
15453 &self,
15454 lpoldpass: *mut i8,
15455 lpnewpass: *mut i8,
15456 ulflags: u32,
15457 ) -> windows_core::Result<()> {
15458 unsafe {
15459 (windows_core::Interface::vtable(self).ChangePassword)(
15460 windows_core::Interface::as_raw(self),
15461 lpoldpass as _,
15462 lpnewpass as _,
15463 ulflags,
15464 )
15465 .ok()
15466 }
15467 }
15468 pub unsafe fn FlushQueues(
15469 &self,
15470 uluiparam: usize,
15471 cbtargettransport: u32,
15472 lptargettransport: *mut ENTRYID,
15473 ulflags: u32,
15474 ) -> windows_core::Result<()> {
15475 unsafe {
15476 (windows_core::Interface::vtable(self).FlushQueues)(
15477 windows_core::Interface::as_raw(self),
15478 uluiparam,
15479 cbtargettransport,
15480 lptargettransport as _,
15481 ulflags,
15482 )
15483 .ok()
15484 }
15485 }
15486}
15487#[repr(C)]
15488pub struct IMAPIStatus_Vtbl {
15489 pub base__: IMAPIProp_Vtbl,
15490 pub ValidateState:
15491 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32) -> windows_core::HRESULT,
15492 pub SettingsDialog:
15493 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32) -> windows_core::HRESULT,
15494 pub ChangePassword: unsafe extern "system" fn(
15495 *mut core::ffi::c_void,
15496 *mut i8,
15497 *mut i8,
15498 u32,
15499 ) -> windows_core::HRESULT,
15500 pub FlushQueues: unsafe extern "system" fn(
15501 *mut core::ffi::c_void,
15502 usize,
15503 u32,
15504 *mut ENTRYID,
15505 u32,
15506 ) -> windows_core::HRESULT,
15507}
15508pub trait IMAPIStatus_Impl: IMAPIProp_Impl {
15509 fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()>;
15510 fn SettingsDialog(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()>;
15511 fn ChangePassword(
15512 &self,
15513 lpoldpass: *mut i8,
15514 lpnewpass: *mut i8,
15515 ulflags: u32,
15516 ) -> windows_core::Result<()>;
15517 fn FlushQueues(
15518 &self,
15519 uluiparam: usize,
15520 cbtargettransport: u32,
15521 lptargettransport: *mut ENTRYID,
15522 ulflags: u32,
15523 ) -> windows_core::Result<()>;
15524}
15525impl IMAPIStatus_Vtbl {
15526 pub const fn new<Identity: IMAPIStatus_Impl, const OFFSET: isize>() -> Self {
15527 unsafe extern "system" fn ValidateState<Identity: IMAPIStatus_Impl, const OFFSET: isize>(
15528 this: *mut core::ffi::c_void,
15529 uluiparam: usize,
15530 ulflags: u32,
15531 ) -> windows_core::HRESULT {
15532 unsafe {
15533 let this: &Identity =
15534 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15535 IMAPIStatus_Impl::ValidateState(
15536 this,
15537 core::mem::transmute_copy(&uluiparam),
15538 core::mem::transmute_copy(&ulflags),
15539 )
15540 .into()
15541 }
15542 }
15543 unsafe extern "system" fn SettingsDialog<
15544 Identity: IMAPIStatus_Impl,
15545 const OFFSET: isize,
15546 >(
15547 this: *mut core::ffi::c_void,
15548 uluiparam: usize,
15549 ulflags: u32,
15550 ) -> windows_core::HRESULT {
15551 unsafe {
15552 let this: &Identity =
15553 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15554 IMAPIStatus_Impl::SettingsDialog(
15555 this,
15556 core::mem::transmute_copy(&uluiparam),
15557 core::mem::transmute_copy(&ulflags),
15558 )
15559 .into()
15560 }
15561 }
15562 unsafe extern "system" fn ChangePassword<
15563 Identity: IMAPIStatus_Impl,
15564 const OFFSET: isize,
15565 >(
15566 this: *mut core::ffi::c_void,
15567 lpoldpass: *mut i8,
15568 lpnewpass: *mut i8,
15569 ulflags: u32,
15570 ) -> windows_core::HRESULT {
15571 unsafe {
15572 let this: &Identity =
15573 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15574 IMAPIStatus_Impl::ChangePassword(
15575 this,
15576 core::mem::transmute_copy(&lpoldpass),
15577 core::mem::transmute_copy(&lpnewpass),
15578 core::mem::transmute_copy(&ulflags),
15579 )
15580 .into()
15581 }
15582 }
15583 unsafe extern "system" fn FlushQueues<Identity: IMAPIStatus_Impl, const OFFSET: isize>(
15584 this: *mut core::ffi::c_void,
15585 uluiparam: usize,
15586 cbtargettransport: u32,
15587 lptargettransport: *mut ENTRYID,
15588 ulflags: u32,
15589 ) -> windows_core::HRESULT {
15590 unsafe {
15591 let this: &Identity =
15592 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15593 IMAPIStatus_Impl::FlushQueues(
15594 this,
15595 core::mem::transmute_copy(&uluiparam),
15596 core::mem::transmute_copy(&cbtargettransport),
15597 core::mem::transmute_copy(&lptargettransport),
15598 core::mem::transmute_copy(&ulflags),
15599 )
15600 .into()
15601 }
15602 }
15603 Self {
15604 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
15605 ValidateState: ValidateState::<Identity, OFFSET>,
15606 SettingsDialog: SettingsDialog::<Identity, OFFSET>,
15607 ChangePassword: ChangePassword::<Identity, OFFSET>,
15608 FlushQueues: FlushQueues::<Identity, OFFSET>,
15609 }
15610 }
15611 pub fn matches(iid: &windows_core::GUID) -> bool {
15612 iid == &<IMAPIStatus as windows_core::Interface>::IID
15613 || iid == &<IMAPIProp as windows_core::Interface>::IID
15614 }
15615}
15616impl windows_core::RuntimeName for IMAPIStatus {}
15617pub const IMAPIStatus_ChangePassword: METHODS = METHODS(124i32);
15618pub const IMAPIStatus_FlushQueues: METHODS = METHODS(125i32);
15619pub const IMAPIStatus_SettingsDialog: METHODS = METHODS(123i32);
15620pub const IMAPIStatus_ValidateState: METHODS = METHODS(122i32);
15621windows_core::imp::define_interface!(IMAPISupport, IMAPISupport_Vtbl, 0);
15622windows_core::imp::interface_hierarchy!(IMAPISupport, windows_core::IUnknown);
15623impl IMAPISupport {
15624 pub unsafe fn GetLastError(
15625 &self,
15626 hresult: windows_core::HRESULT,
15627 ulflags: u32,
15628 lppmapierror: *mut *mut MAPIERROR,
15629 ) -> windows_core::Result<()> {
15630 unsafe {
15631 (windows_core::Interface::vtable(self).GetLastError)(
15632 windows_core::Interface::as_raw(self),
15633 hresult,
15634 ulflags,
15635 lppmapierror as _,
15636 )
15637 .ok()
15638 }
15639 }
15640 pub unsafe fn GetMemAllocRoutines(
15641 &self,
15642 lpallocatebuffer: *mut LPALLOCATEBUFFER,
15643 lpallocatemore: *mut LPALLOCATEMORE,
15644 lpfreebuffer: *mut LPFREEBUFFER,
15645 ) -> windows_core::Result<()> {
15646 unsafe {
15647 (windows_core::Interface::vtable(self).GetMemAllocRoutines)(
15648 windows_core::Interface::as_raw(self),
15649 lpallocatebuffer as _,
15650 lpallocatemore as _,
15651 lpfreebuffer as _,
15652 )
15653 .ok()
15654 }
15655 }
15656 pub unsafe fn Subscribe<P3>(
15657 &self,
15658 lpkey: *mut NOTIFKEY,
15659 uleventmask: u32,
15660 ulflags: u32,
15661 lpadvisesink: P3,
15662 lpulconnection: *mut usize,
15663 ) -> windows_core::Result<()>
15664 where
15665 P3: windows_core::Param<IMAPIAdviseSink>,
15666 {
15667 unsafe {
15668 (windows_core::Interface::vtable(self).Subscribe)(
15669 windows_core::Interface::as_raw(self),
15670 lpkey as _,
15671 uleventmask,
15672 ulflags,
15673 lpadvisesink.param().abi(),
15674 lpulconnection as _,
15675 )
15676 .ok()
15677 }
15678 }
15679 pub unsafe fn Unsubscribe(&self, ulconnection: usize) -> windows_core::Result<()> {
15680 unsafe {
15681 (windows_core::Interface::vtable(self).Unsubscribe)(
15682 windows_core::Interface::as_raw(self),
15683 ulconnection,
15684 )
15685 .ok()
15686 }
15687 }
15688 pub unsafe fn Notify(
15689 &self,
15690 lpkey: *mut NOTIFKEY,
15691 cnotification: u32,
15692 lpnotifications: *mut NOTIFICATION,
15693 lpulflags: *mut u32,
15694 ) -> windows_core::Result<()> {
15695 unsafe {
15696 (windows_core::Interface::vtable(self).Notify)(
15697 windows_core::Interface::as_raw(self),
15698 lpkey as _,
15699 cnotification,
15700 lpnotifications as _,
15701 lpulflags as _,
15702 )
15703 .ok()
15704 }
15705 }
15706 pub unsafe fn ModifyStatusRow(
15707 &self,
15708 cvalues: u32,
15709 lpcolumnvals: *mut SPropValue,
15710 ulflags: u32,
15711 ) -> windows_core::Result<()> {
15712 unsafe {
15713 (windows_core::Interface::vtable(self).ModifyStatusRow)(
15714 windows_core::Interface::as_raw(self),
15715 cvalues,
15716 lpcolumnvals as _,
15717 ulflags,
15718 )
15719 .ok()
15720 }
15721 }
15722 pub unsafe fn OpenProfileSection(
15723 &self,
15724 lpuid: *mut MAPIUID,
15725 ulflags: u32,
15726 lppprofileobj: *mut Option<IProfSect>,
15727 ) -> windows_core::Result<()> {
15728 unsafe {
15729 (windows_core::Interface::vtable(self).OpenProfileSection)(
15730 windows_core::Interface::as_raw(self),
15731 lpuid as _,
15732 ulflags,
15733 core::mem::transmute(lppprofileobj),
15734 )
15735 .ok()
15736 }
15737 }
15738 pub unsafe fn RegisterPreprocessor<P3, P4>(
15739 &self,
15740 lpmuid: *mut MAPIUID,
15741 lpszadrtype: *mut i8,
15742 lpszdllname: *mut i8,
15743 lpszpreprocess: P3,
15744 lpszremovepreprocessinfo: P4,
15745 ulflags: u32,
15746 ) -> windows_core::Result<()>
15747 where
15748 P3: windows_core::Param<windows_core::PCSTR>,
15749 P4: windows_core::Param<windows_core::PCSTR>,
15750 {
15751 unsafe {
15752 (windows_core::Interface::vtable(self).RegisterPreprocessor)(
15753 windows_core::Interface::as_raw(self),
15754 lpmuid as _,
15755 lpszadrtype as _,
15756 lpszdllname as _,
15757 lpszpreprocess.param().abi(),
15758 lpszremovepreprocessinfo.param().abi(),
15759 ulflags,
15760 )
15761 .ok()
15762 }
15763 }
15764 pub unsafe fn NewUID(&self, lpmuid: *mut MAPIUID) -> windows_core::Result<()> {
15765 unsafe {
15766 (windows_core::Interface::vtable(self).NewUID)(
15767 windows_core::Interface::as_raw(self),
15768 lpmuid as _,
15769 )
15770 .ok()
15771 }
15772 }
15773 pub unsafe fn MakeInvalid(
15774 &self,
15775 ulflags: u32,
15776 lpobject: *mut core::ffi::c_void,
15777 ulrefcount: u32,
15778 cmethods: u32,
15779 ) -> windows_core::Result<()> {
15780 unsafe {
15781 (windows_core::Interface::vtable(self).MakeInvalid)(
15782 windows_core::Interface::as_raw(self),
15783 ulflags,
15784 lpobject as _,
15785 ulrefcount,
15786 cmethods,
15787 )
15788 .ok()
15789 }
15790 }
15791 pub unsafe fn SpoolerYield(&self, ulflags: u32) -> windows_core::Result<()> {
15792 unsafe {
15793 (windows_core::Interface::vtable(self).SpoolerYield)(
15794 windows_core::Interface::as_raw(self),
15795 ulflags,
15796 )
15797 .ok()
15798 }
15799 }
15800 pub unsafe fn SpoolerNotify(
15801 &self,
15802 ulflags: u32,
15803 lpvdata: *mut core::ffi::c_void,
15804 ) -> windows_core::Result<()> {
15805 unsafe {
15806 (windows_core::Interface::vtable(self).SpoolerNotify)(
15807 windows_core::Interface::as_raw(self),
15808 ulflags,
15809 lpvdata as _,
15810 )
15811 .ok()
15812 }
15813 }
15814 pub unsafe fn CreateOneOff(
15815 &self,
15816 lpszname: *mut i8,
15817 lpszadrtype: *mut i8,
15818 lpszaddress: *mut i8,
15819 ulflags: u32,
15820 lpcbentryid: *mut u32,
15821 lppentryid: *mut *mut ENTRYID,
15822 ) -> windows_core::Result<()> {
15823 unsafe {
15824 (windows_core::Interface::vtable(self).CreateOneOff)(
15825 windows_core::Interface::as_raw(self),
15826 lpszname as _,
15827 lpszadrtype as _,
15828 lpszaddress as _,
15829 ulflags,
15830 lpcbentryid as _,
15831 lppentryid as _,
15832 )
15833 .ok()
15834 }
15835 }
15836 pub unsafe fn SetProviderUID(
15837 &self,
15838 lpproviderid: *mut MAPIUID,
15839 ulflags: u32,
15840 ) -> windows_core::Result<()> {
15841 unsafe {
15842 (windows_core::Interface::vtable(self).SetProviderUID)(
15843 windows_core::Interface::as_raw(self),
15844 lpproviderid as _,
15845 ulflags,
15846 )
15847 .ok()
15848 }
15849 }
15850 pub unsafe fn CompareEntryIDs(
15851 &self,
15852 cbentry1: u32,
15853 lpentry1: *mut ENTRYID,
15854 cbentry2: u32,
15855 lpentry2: *mut ENTRYID,
15856 ulcompareflags: u32,
15857 lpulresult: *mut u32,
15858 ) -> windows_core::Result<()> {
15859 unsafe {
15860 (windows_core::Interface::vtable(self).CompareEntryIDs)(
15861 windows_core::Interface::as_raw(self),
15862 cbentry1,
15863 lpentry1 as _,
15864 cbentry2,
15865 lpentry2 as _,
15866 ulcompareflags,
15867 lpulresult as _,
15868 )
15869 .ok()
15870 }
15871 }
15872 pub unsafe fn OpenTemplateID<P3, P6>(
15873 &self,
15874 cbtemplateid: u32,
15875 lptemplateid: *mut ENTRYID,
15876 ultemplateflags: u32,
15877 lpmapipropdata: P3,
15878 lpinterface: *mut windows_core::GUID,
15879 lppmapipropnew: *mut Option<IMAPIProp>,
15880 lpmapipropsibling: P6,
15881 ) -> windows_core::Result<()>
15882 where
15883 P3: windows_core::Param<IMAPIProp>,
15884 P6: windows_core::Param<IMAPIProp>,
15885 {
15886 unsafe {
15887 (windows_core::Interface::vtable(self).OpenTemplateID)(
15888 windows_core::Interface::as_raw(self),
15889 cbtemplateid,
15890 lptemplateid as _,
15891 ultemplateflags,
15892 lpmapipropdata.param().abi(),
15893 lpinterface as _,
15894 core::mem::transmute(lppmapipropnew),
15895 lpmapipropsibling.param().abi(),
15896 )
15897 .ok()
15898 }
15899 }
15900 pub unsafe fn OpenEntry(
15901 &self,
15902 cbentryid: u32,
15903 lpentryid: *mut ENTRYID,
15904 lpinterface: *mut windows_core::GUID,
15905 ulopenflags: u32,
15906 lpulobjtype: *mut u32,
15907 lppunk: *mut Option<windows_core::IUnknown>,
15908 ) -> windows_core::Result<()> {
15909 unsafe {
15910 (windows_core::Interface::vtable(self).OpenEntry)(
15911 windows_core::Interface::as_raw(self),
15912 cbentryid,
15913 lpentryid as _,
15914 lpinterface as _,
15915 ulopenflags,
15916 lpulobjtype as _,
15917 core::mem::transmute(lppunk),
15918 )
15919 .ok()
15920 }
15921 }
15922 pub unsafe fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
15923 unsafe {
15924 let mut result__ = core::mem::zeroed();
15925 (windows_core::Interface::vtable(self).GetOneOffTable)(
15926 windows_core::Interface::as_raw(self),
15927 ulflags,
15928 &mut result__,
15929 )
15930 .and_then(|| windows_core::Type::from_abi(result__))
15931 }
15932 }
15933 pub unsafe fn Address(
15934 &self,
15935 lpuluiparam: *mut usize,
15936 lpadrparms: *mut ADRPARM,
15937 lppadrlist: *mut *mut ADRLIST,
15938 ) -> windows_core::Result<()> {
15939 unsafe {
15940 (windows_core::Interface::vtable(self).Address)(
15941 windows_core::Interface::as_raw(self),
15942 lpuluiparam as _,
15943 lpadrparms as _,
15944 lppadrlist as _,
15945 )
15946 .ok()
15947 }
15948 }
15949 pub unsafe fn Details(
15950 &self,
15951 lpuluiparam: *mut usize,
15952 lpfndismiss: LPFNDISMISS,
15953 lpvdismisscontext: *mut core::ffi::c_void,
15954 cbentryid: u32,
15955 lpentryid: *mut ENTRYID,
15956 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
15957 lpvbuttoncontext: *mut core::ffi::c_void,
15958 lpszbuttontext: *mut i8,
15959 ulflags: u32,
15960 ) -> windows_core::Result<()> {
15961 unsafe {
15962 (windows_core::Interface::vtable(self).Details)(
15963 windows_core::Interface::as_raw(self),
15964 lpuluiparam as _,
15965 lpfndismiss,
15966 lpvdismisscontext as _,
15967 cbentryid,
15968 lpentryid as _,
15969 lpfbuttoncallback,
15970 lpvbuttoncontext as _,
15971 lpszbuttontext as _,
15972 ulflags,
15973 )
15974 .ok()
15975 }
15976 }
15977 pub unsafe fn NewEntry(
15978 &self,
15979 uluiparam: usize,
15980 ulflags: u32,
15981 cbeidcontainer: u32,
15982 lpeidcontainer: *mut ENTRYID,
15983 cbeidnewentrytpl: u32,
15984 lpeidnewentrytpl: *mut ENTRYID,
15985 lpcbeidnewentry: *mut u32,
15986 lppeidnewentry: *mut *mut ENTRYID,
15987 ) -> windows_core::Result<()> {
15988 unsafe {
15989 (windows_core::Interface::vtable(self).NewEntry)(
15990 windows_core::Interface::as_raw(self),
15991 uluiparam,
15992 ulflags,
15993 cbeidcontainer,
15994 lpeidcontainer as _,
15995 cbeidnewentrytpl,
15996 lpeidnewentrytpl as _,
15997 lpcbeidnewentry as _,
15998 lppeidnewentry as _,
15999 )
16000 .ok()
16001 }
16002 }
16003 pub unsafe fn DoConfigPropsheet<P3, P4>(
16004 &self,
16005 uluiparam: usize,
16006 ulflags: u32,
16007 lpsztitle: *mut i8,
16008 lpdisplaytable: P3,
16009 lpconfigdata: P4,
16010 ultoppage: u32,
16011 ) -> windows_core::Result<()>
16012 where
16013 P3: windows_core::Param<IMAPITable>,
16014 P4: windows_core::Param<IMAPIProp>,
16015 {
16016 unsafe {
16017 (windows_core::Interface::vtable(self).DoConfigPropsheet)(
16018 windows_core::Interface::as_raw(self),
16019 uluiparam,
16020 ulflags,
16021 lpsztitle as _,
16022 lpdisplaytable.param().abi(),
16023 lpconfigdata.param().abi(),
16024 ultoppage,
16025 )
16026 .ok()
16027 }
16028 }
16029 pub unsafe fn CopyMessages<P6>(
16030 &self,
16031 lpsrcinterface: *mut windows_core::GUID,
16032 lpsrcfolder: *mut core::ffi::c_void,
16033 lpmsglist: *mut SBinaryArray,
16034 lpdestinterface: *mut windows_core::GUID,
16035 lpdestfolder: *mut core::ffi::c_void,
16036 uluiparam: usize,
16037 lpprogress: P6,
16038 ulflags: u32,
16039 ) -> windows_core::Result<()>
16040 where
16041 P6: windows_core::Param<IMAPIProgress>,
16042 {
16043 unsafe {
16044 (windows_core::Interface::vtable(self).CopyMessages)(
16045 windows_core::Interface::as_raw(self),
16046 lpsrcinterface as _,
16047 lpsrcfolder as _,
16048 lpmsglist as _,
16049 lpdestinterface as _,
16050 lpdestfolder as _,
16051 uluiparam,
16052 lpprogress.param().abi(),
16053 ulflags,
16054 )
16055 .ok()
16056 }
16057 }
16058 pub unsafe fn CopyFolder<P8>(
16059 &self,
16060 lpsrcinterface: *mut windows_core::GUID,
16061 lpsrcfolder: *mut core::ffi::c_void,
16062 cbentryid: u32,
16063 lpentryid: *mut ENTRYID,
16064 lpdestinterface: *mut windows_core::GUID,
16065 lpdestfolder: *mut core::ffi::c_void,
16066 lsznewfoldername: *mut i8,
16067 uluiparam: usize,
16068 lpprogress: P8,
16069 ulflags: u32,
16070 ) -> windows_core::Result<()>
16071 where
16072 P8: windows_core::Param<IMAPIProgress>,
16073 {
16074 unsafe {
16075 (windows_core::Interface::vtable(self).CopyFolder)(
16076 windows_core::Interface::as_raw(self),
16077 lpsrcinterface as _,
16078 lpsrcfolder as _,
16079 cbentryid,
16080 lpentryid as _,
16081 lpdestinterface as _,
16082 lpdestfolder as _,
16083 lsznewfoldername as _,
16084 uluiparam,
16085 lpprogress.param().abi(),
16086 ulflags,
16087 )
16088 .ok()
16089 }
16090 }
16091 pub unsafe fn DoCopyTo<P6>(
16092 &self,
16093 lpsrcinterface: *mut windows_core::GUID,
16094 lpsrcobj: *mut core::ffi::c_void,
16095 ciidexclude: u32,
16096 rgiidexclude: *mut windows_core::GUID,
16097 lpexcludeprops: *mut SPropTagArray,
16098 uluiparam: usize,
16099 lpprogress: P6,
16100 lpdestinterface: *mut windows_core::GUID,
16101 lpdestobj: *mut core::ffi::c_void,
16102 ulflags: u32,
16103 lppproblems: *mut *mut SPropProblemArray,
16104 ) -> windows_core::Result<()>
16105 where
16106 P6: windows_core::Param<IMAPIProgress>,
16107 {
16108 unsafe {
16109 (windows_core::Interface::vtable(self).DoCopyTo)(
16110 windows_core::Interface::as_raw(self),
16111 lpsrcinterface as _,
16112 lpsrcobj as _,
16113 ciidexclude,
16114 rgiidexclude as _,
16115 lpexcludeprops as _,
16116 uluiparam,
16117 lpprogress.param().abi(),
16118 lpdestinterface as _,
16119 lpdestobj as _,
16120 ulflags,
16121 lppproblems as _,
16122 )
16123 .ok()
16124 }
16125 }
16126 pub unsafe fn DoCopyProps<P4>(
16127 &self,
16128 lpsrcinterface: *mut windows_core::GUID,
16129 lpsrcobj: *mut core::ffi::c_void,
16130 lpincludeprops: *mut SPropTagArray,
16131 uluiparam: usize,
16132 lpprogress: P4,
16133 lpdestinterface: *mut windows_core::GUID,
16134 lpdestobj: *mut core::ffi::c_void,
16135 ulflags: u32,
16136 lppproblems: *mut *mut SPropProblemArray,
16137 ) -> windows_core::Result<()>
16138 where
16139 P4: windows_core::Param<IMAPIProgress>,
16140 {
16141 unsafe {
16142 (windows_core::Interface::vtable(self).DoCopyProps)(
16143 windows_core::Interface::as_raw(self),
16144 lpsrcinterface as _,
16145 lpsrcobj as _,
16146 lpincludeprops as _,
16147 uluiparam,
16148 lpprogress.param().abi(),
16149 lpdestinterface as _,
16150 lpdestobj as _,
16151 ulflags,
16152 lppproblems as _,
16153 )
16154 .ok()
16155 }
16156 }
16157 pub unsafe fn DoProgressDialog(
16158 &self,
16159 uluiparam: usize,
16160 ulflags: u32,
16161 ) -> windows_core::Result<IMAPIProgress> {
16162 unsafe {
16163 let mut result__ = core::mem::zeroed();
16164 (windows_core::Interface::vtable(self).DoProgressDialog)(
16165 windows_core::Interface::as_raw(self),
16166 uluiparam,
16167 ulflags,
16168 &mut result__,
16169 )
16170 .and_then(|| windows_core::Type::from_abi(result__))
16171 }
16172 }
16173 pub unsafe fn ReadReceipt<P1>(
16174 &self,
16175 ulflags: u32,
16176 lpreadmessage: P1,
16177 ) -> windows_core::Result<IMessage>
16178 where
16179 P1: windows_core::Param<IMessage>,
16180 {
16181 unsafe {
16182 let mut result__ = core::mem::zeroed();
16183 (windows_core::Interface::vtable(self).ReadReceipt)(
16184 windows_core::Interface::as_raw(self),
16185 ulflags,
16186 lpreadmessage.param().abi(),
16187 &mut result__,
16188 )
16189 .and_then(|| windows_core::Type::from_abi(result__))
16190 }
16191 }
16192 pub unsafe fn PrepareSubmit<P0>(
16193 &self,
16194 lpmessage: P0,
16195 lpulflags: *mut u32,
16196 ) -> windows_core::Result<()>
16197 where
16198 P0: windows_core::Param<IMessage>,
16199 {
16200 unsafe {
16201 (windows_core::Interface::vtable(self).PrepareSubmit)(
16202 windows_core::Interface::as_raw(self),
16203 lpmessage.param().abi(),
16204 lpulflags as _,
16205 )
16206 .ok()
16207 }
16208 }
16209 pub unsafe fn ExpandRecips<P0>(
16210 &self,
16211 lpmessage: P0,
16212 lpulflags: *mut u32,
16213 ) -> windows_core::Result<()>
16214 where
16215 P0: windows_core::Param<IMessage>,
16216 {
16217 unsafe {
16218 (windows_core::Interface::vtable(self).ExpandRecips)(
16219 windows_core::Interface::as_raw(self),
16220 lpmessage.param().abi(),
16221 lpulflags as _,
16222 )
16223 .ok()
16224 }
16225 }
16226 pub unsafe fn UpdatePAB<P1>(&self, ulflags: u32, lpmessage: P1) -> windows_core::Result<()>
16227 where
16228 P1: windows_core::Param<IMessage>,
16229 {
16230 unsafe {
16231 (windows_core::Interface::vtable(self).UpdatePAB)(
16232 windows_core::Interface::as_raw(self),
16233 ulflags,
16234 lpmessage.param().abi(),
16235 )
16236 .ok()
16237 }
16238 }
16239 pub unsafe fn DoSentMail<P1>(&self, ulflags: u32, lpmessage: P1) -> windows_core::Result<()>
16240 where
16241 P1: windows_core::Param<IMessage>,
16242 {
16243 unsafe {
16244 (windows_core::Interface::vtable(self).DoSentMail)(
16245 windows_core::Interface::as_raw(self),
16246 ulflags,
16247 lpmessage.param().abi(),
16248 )
16249 .ok()
16250 }
16251 }
16252 pub unsafe fn OpenAddressBook(
16253 &self,
16254 lpinterface: *mut windows_core::GUID,
16255 ulflags: u32,
16256 lppadrbook: *mut Option<IAddrBook>,
16257 ) -> windows_core::Result<()> {
16258 unsafe {
16259 (windows_core::Interface::vtable(self).OpenAddressBook)(
16260 windows_core::Interface::as_raw(self),
16261 lpinterface as _,
16262 ulflags,
16263 core::mem::transmute(lppadrbook),
16264 )
16265 .ok()
16266 }
16267 }
16268 pub unsafe fn Preprocess(
16269 &self,
16270 ulflags: u32,
16271 cbentryid: u32,
16272 lpentryid: *mut ENTRYID,
16273 ) -> windows_core::Result<()> {
16274 unsafe {
16275 (windows_core::Interface::vtable(self).Preprocess)(
16276 windows_core::Interface::as_raw(self),
16277 ulflags,
16278 cbentryid,
16279 lpentryid as _,
16280 )
16281 .ok()
16282 }
16283 }
16284 pub unsafe fn CompleteMsg(
16285 &self,
16286 ulflags: u32,
16287 cbentryid: u32,
16288 lpentryid: *mut ENTRYID,
16289 ) -> windows_core::Result<()> {
16290 unsafe {
16291 (windows_core::Interface::vtable(self).CompleteMsg)(
16292 windows_core::Interface::as_raw(self),
16293 ulflags,
16294 cbentryid,
16295 lpentryid as _,
16296 )
16297 .ok()
16298 }
16299 }
16300 pub unsafe fn StoreLogoffTransports(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
16301 unsafe {
16302 (windows_core::Interface::vtable(self).StoreLogoffTransports)(
16303 windows_core::Interface::as_raw(self),
16304 lpulflags as _,
16305 )
16306 .ok()
16307 }
16308 }
16309 pub unsafe fn StatusRecips<P0>(
16310 &self,
16311 lpmessage: P0,
16312 lpreciplist: *mut ADRLIST,
16313 ) -> windows_core::Result<()>
16314 where
16315 P0: windows_core::Param<IMessage>,
16316 {
16317 unsafe {
16318 (windows_core::Interface::vtable(self).StatusRecips)(
16319 windows_core::Interface::as_raw(self),
16320 lpmessage.param().abi(),
16321 lpreciplist as _,
16322 )
16323 .ok()
16324 }
16325 }
16326 pub unsafe fn WrapStoreEntryID(
16327 &self,
16328 cborigentry: u32,
16329 lporigentry: *mut ENTRYID,
16330 lpcbwrappedentry: *mut u32,
16331 lppwrappedentry: *mut *mut ENTRYID,
16332 ) -> windows_core::Result<()> {
16333 unsafe {
16334 (windows_core::Interface::vtable(self).WrapStoreEntryID)(
16335 windows_core::Interface::as_raw(self),
16336 cborigentry,
16337 lporigentry as _,
16338 lpcbwrappedentry as _,
16339 lppwrappedentry as _,
16340 )
16341 .ok()
16342 }
16343 }
16344 pub unsafe fn ModifyProfile(&self, ulflags: u32) -> windows_core::Result<()> {
16345 unsafe {
16346 (windows_core::Interface::vtable(self).ModifyProfile)(
16347 windows_core::Interface::as_raw(self),
16348 ulflags,
16349 )
16350 .ok()
16351 }
16352 }
16353 pub unsafe fn IStorageFromStream<P0>(
16354 &self,
16355 lpunkin: P0,
16356 lpinterface: *mut windows_core::GUID,
16357 ulflags: u32,
16358 lppstorageout: *mut Option<windows::Win32::System::Com::StructuredStorage::IStorage>,
16359 ) -> windows_core::Result<()>
16360 where
16361 P0: windows_core::Param<windows_core::IUnknown>,
16362 {
16363 unsafe {
16364 (windows_core::Interface::vtable(self).IStorageFromStream)(
16365 windows_core::Interface::as_raw(self),
16366 lpunkin.param().abi(),
16367 lpinterface as _,
16368 ulflags,
16369 core::mem::transmute(lppstorageout),
16370 )
16371 .ok()
16372 }
16373 }
16374 pub unsafe fn GetSvcConfigSupportObj(
16375 &self,
16376 ulflags: u32,
16377 ) -> windows_core::Result<IMAPISupport> {
16378 unsafe {
16379 let mut result__ = core::mem::zeroed();
16380 (windows_core::Interface::vtable(self).GetSvcConfigSupportObj)(
16381 windows_core::Interface::as_raw(self),
16382 ulflags,
16383 &mut result__,
16384 )
16385 .and_then(|| windows_core::Type::from_abi(result__))
16386 }
16387 }
16388}
16389#[repr(C)]
16390pub struct IMAPISupport_Vtbl {
16391 pub base__: windows_core::IUnknown_Vtbl,
16392 pub GetLastError: unsafe extern "system" fn(
16393 *mut core::ffi::c_void,
16394 windows_core::HRESULT,
16395 u32,
16396 *mut *mut MAPIERROR,
16397 ) -> windows_core::HRESULT,
16398 pub GetMemAllocRoutines: unsafe extern "system" fn(
16399 *mut core::ffi::c_void,
16400 *mut LPALLOCATEBUFFER,
16401 *mut LPALLOCATEMORE,
16402 *mut LPFREEBUFFER,
16403 ) -> windows_core::HRESULT,
16404 pub Subscribe: unsafe extern "system" fn(
16405 *mut core::ffi::c_void,
16406 *mut NOTIFKEY,
16407 u32,
16408 u32,
16409 *mut core::ffi::c_void,
16410 *mut usize,
16411 ) -> windows_core::HRESULT,
16412 pub Unsubscribe:
16413 unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
16414 pub Notify: unsafe extern "system" fn(
16415 *mut core::ffi::c_void,
16416 *mut NOTIFKEY,
16417 u32,
16418 *mut NOTIFICATION,
16419 *mut u32,
16420 ) -> windows_core::HRESULT,
16421 pub ModifyStatusRow: unsafe extern "system" fn(
16422 *mut core::ffi::c_void,
16423 u32,
16424 *mut SPropValue,
16425 u32,
16426 ) -> windows_core::HRESULT,
16427 pub OpenProfileSection: unsafe extern "system" fn(
16428 *mut core::ffi::c_void,
16429 *mut MAPIUID,
16430 u32,
16431 *mut *mut core::ffi::c_void,
16432 ) -> windows_core::HRESULT,
16433 pub RegisterPreprocessor: unsafe extern "system" fn(
16434 *mut core::ffi::c_void,
16435 *mut MAPIUID,
16436 *mut i8,
16437 *mut i8,
16438 windows_core::PCSTR,
16439 windows_core::PCSTR,
16440 u32,
16441 ) -> windows_core::HRESULT,
16442 pub NewUID:
16443 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
16444 pub MakeInvalid: unsafe extern "system" fn(
16445 *mut core::ffi::c_void,
16446 u32,
16447 *mut core::ffi::c_void,
16448 u32,
16449 u32,
16450 ) -> windows_core::HRESULT,
16451 pub SpoolerYield:
16452 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
16453 pub SpoolerNotify: unsafe extern "system" fn(
16454 *mut core::ffi::c_void,
16455 u32,
16456 *mut core::ffi::c_void,
16457 ) -> windows_core::HRESULT,
16458 pub CreateOneOff: unsafe extern "system" fn(
16459 *mut core::ffi::c_void,
16460 *mut i8,
16461 *mut i8,
16462 *mut i8,
16463 u32,
16464 *mut u32,
16465 *mut *mut ENTRYID,
16466 ) -> windows_core::HRESULT,
16467 pub SetProviderUID: unsafe extern "system" fn(
16468 *mut core::ffi::c_void,
16469 *mut MAPIUID,
16470 u32,
16471 ) -> windows_core::HRESULT,
16472 pub CompareEntryIDs: unsafe extern "system" fn(
16473 *mut core::ffi::c_void,
16474 u32,
16475 *mut ENTRYID,
16476 u32,
16477 *mut ENTRYID,
16478 u32,
16479 *mut u32,
16480 ) -> windows_core::HRESULT,
16481 pub OpenTemplateID: unsafe extern "system" fn(
16482 *mut core::ffi::c_void,
16483 u32,
16484 *mut ENTRYID,
16485 u32,
16486 *mut core::ffi::c_void,
16487 *mut windows_core::GUID,
16488 *mut *mut core::ffi::c_void,
16489 *mut core::ffi::c_void,
16490 ) -> windows_core::HRESULT,
16491 pub OpenEntry: unsafe extern "system" fn(
16492 *mut core::ffi::c_void,
16493 u32,
16494 *mut ENTRYID,
16495 *mut windows_core::GUID,
16496 u32,
16497 *mut u32,
16498 *mut *mut core::ffi::c_void,
16499 ) -> windows_core::HRESULT,
16500 pub GetOneOffTable: unsafe extern "system" fn(
16501 *mut core::ffi::c_void,
16502 u32,
16503 *mut *mut core::ffi::c_void,
16504 ) -> windows_core::HRESULT,
16505 pub Address: unsafe extern "system" fn(
16506 *mut core::ffi::c_void,
16507 *mut usize,
16508 *mut ADRPARM,
16509 *mut *mut ADRLIST,
16510 ) -> windows_core::HRESULT,
16511 pub Details: unsafe extern "system" fn(
16512 *mut core::ffi::c_void,
16513 *mut usize,
16514 LPFNDISMISS,
16515 *mut core::ffi::c_void,
16516 u32,
16517 *mut ENTRYID,
16518 windows::Win32::System::AddressBook::LPFNBUTTON,
16519 *mut core::ffi::c_void,
16520 *mut i8,
16521 u32,
16522 ) -> windows_core::HRESULT,
16523 pub NewEntry: unsafe extern "system" fn(
16524 *mut core::ffi::c_void,
16525 usize,
16526 u32,
16527 u32,
16528 *mut ENTRYID,
16529 u32,
16530 *mut ENTRYID,
16531 *mut u32,
16532 *mut *mut ENTRYID,
16533 ) -> windows_core::HRESULT,
16534 pub DoConfigPropsheet: unsafe extern "system" fn(
16535 *mut core::ffi::c_void,
16536 usize,
16537 u32,
16538 *mut i8,
16539 *mut core::ffi::c_void,
16540 *mut core::ffi::c_void,
16541 u32,
16542 ) -> windows_core::HRESULT,
16543 pub CopyMessages: unsafe extern "system" fn(
16544 *mut core::ffi::c_void,
16545 *mut windows_core::GUID,
16546 *mut core::ffi::c_void,
16547 *mut SBinaryArray,
16548 *mut windows_core::GUID,
16549 *mut core::ffi::c_void,
16550 usize,
16551 *mut core::ffi::c_void,
16552 u32,
16553 ) -> windows_core::HRESULT,
16554 pub CopyFolder: unsafe extern "system" fn(
16555 *mut core::ffi::c_void,
16556 *mut windows_core::GUID,
16557 *mut core::ffi::c_void,
16558 u32,
16559 *mut ENTRYID,
16560 *mut windows_core::GUID,
16561 *mut core::ffi::c_void,
16562 *mut i8,
16563 usize,
16564 *mut core::ffi::c_void,
16565 u32,
16566 ) -> windows_core::HRESULT,
16567 pub DoCopyTo: unsafe extern "system" fn(
16568 *mut core::ffi::c_void,
16569 *mut windows_core::GUID,
16570 *mut core::ffi::c_void,
16571 u32,
16572 *mut windows_core::GUID,
16573 *mut SPropTagArray,
16574 usize,
16575 *mut core::ffi::c_void,
16576 *mut windows_core::GUID,
16577 *mut core::ffi::c_void,
16578 u32,
16579 *mut *mut SPropProblemArray,
16580 ) -> windows_core::HRESULT,
16581 pub DoCopyProps: unsafe extern "system" fn(
16582 *mut core::ffi::c_void,
16583 *mut windows_core::GUID,
16584 *mut core::ffi::c_void,
16585 *mut SPropTagArray,
16586 usize,
16587 *mut core::ffi::c_void,
16588 *mut windows_core::GUID,
16589 *mut core::ffi::c_void,
16590 u32,
16591 *mut *mut SPropProblemArray,
16592 ) -> windows_core::HRESULT,
16593 pub DoProgressDialog: unsafe extern "system" fn(
16594 *mut core::ffi::c_void,
16595 usize,
16596 u32,
16597 *mut *mut core::ffi::c_void,
16598 ) -> windows_core::HRESULT,
16599 pub ReadReceipt: unsafe extern "system" fn(
16600 *mut core::ffi::c_void,
16601 u32,
16602 *mut core::ffi::c_void,
16603 *mut *mut core::ffi::c_void,
16604 ) -> windows_core::HRESULT,
16605 pub PrepareSubmit: unsafe extern "system" fn(
16606 *mut core::ffi::c_void,
16607 *mut core::ffi::c_void,
16608 *mut u32,
16609 ) -> windows_core::HRESULT,
16610 pub ExpandRecips: unsafe extern "system" fn(
16611 *mut core::ffi::c_void,
16612 *mut core::ffi::c_void,
16613 *mut u32,
16614 ) -> windows_core::HRESULT,
16615 pub UpdatePAB: unsafe extern "system" fn(
16616 *mut core::ffi::c_void,
16617 u32,
16618 *mut core::ffi::c_void,
16619 ) -> windows_core::HRESULT,
16620 pub DoSentMail: unsafe extern "system" fn(
16621 *mut core::ffi::c_void,
16622 u32,
16623 *mut core::ffi::c_void,
16624 ) -> windows_core::HRESULT,
16625 pub OpenAddressBook: unsafe extern "system" fn(
16626 *mut core::ffi::c_void,
16627 *mut windows_core::GUID,
16628 u32,
16629 *mut *mut core::ffi::c_void,
16630 ) -> windows_core::HRESULT,
16631 pub Preprocess: unsafe extern "system" fn(
16632 *mut core::ffi::c_void,
16633 u32,
16634 u32,
16635 *mut ENTRYID,
16636 ) -> windows_core::HRESULT,
16637 pub CompleteMsg: unsafe extern "system" fn(
16638 *mut core::ffi::c_void,
16639 u32,
16640 u32,
16641 *mut ENTRYID,
16642 ) -> windows_core::HRESULT,
16643 pub StoreLogoffTransports:
16644 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
16645 pub StatusRecips: unsafe extern "system" fn(
16646 *mut core::ffi::c_void,
16647 *mut core::ffi::c_void,
16648 *mut ADRLIST,
16649 ) -> windows_core::HRESULT,
16650 pub WrapStoreEntryID: unsafe extern "system" fn(
16651 *mut core::ffi::c_void,
16652 u32,
16653 *mut ENTRYID,
16654 *mut u32,
16655 *mut *mut ENTRYID,
16656 ) -> windows_core::HRESULT,
16657 pub ModifyProfile:
16658 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
16659 pub IStorageFromStream: unsafe extern "system" fn(
16660 *mut core::ffi::c_void,
16661 *mut core::ffi::c_void,
16662 *mut windows_core::GUID,
16663 u32,
16664 *mut *mut core::ffi::c_void,
16665 ) -> windows_core::HRESULT,
16666 pub GetSvcConfigSupportObj: unsafe extern "system" fn(
16667 *mut core::ffi::c_void,
16668 u32,
16669 *mut *mut core::ffi::c_void,
16670 ) -> windows_core::HRESULT,
16671}
16672pub trait IMAPISupport_Impl: windows_core::IUnknownImpl {
16673 fn GetLastError(
16674 &self,
16675 hresult: windows_core::HRESULT,
16676 ulflags: u32,
16677 lppmapierror: *mut *mut MAPIERROR,
16678 ) -> windows_core::Result<()>;
16679 fn GetMemAllocRoutines(
16680 &self,
16681 lpallocatebuffer: *mut LPALLOCATEBUFFER,
16682 lpallocatemore: *mut LPALLOCATEMORE,
16683 lpfreebuffer: *mut LPFREEBUFFER,
16684 ) -> windows_core::Result<()>;
16685 fn Subscribe(
16686 &self,
16687 lpkey: *mut NOTIFKEY,
16688 uleventmask: u32,
16689 ulflags: u32,
16690 lpadvisesink: windows_core::Ref<'_, IMAPIAdviseSink>,
16691 lpulconnection: *mut usize,
16692 ) -> windows_core::Result<()>;
16693 fn Unsubscribe(&self, ulconnection: usize) -> windows_core::Result<()>;
16694 fn Notify(
16695 &self,
16696 lpkey: *mut NOTIFKEY,
16697 cnotification: u32,
16698 lpnotifications: *mut NOTIFICATION,
16699 lpulflags: *mut u32,
16700 ) -> windows_core::Result<()>;
16701 fn ModifyStatusRow(
16702 &self,
16703 cvalues: u32,
16704 lpcolumnvals: *mut SPropValue,
16705 ulflags: u32,
16706 ) -> windows_core::Result<()>;
16707 fn OpenProfileSection(
16708 &self,
16709 lpuid: *mut MAPIUID,
16710 ulflags: u32,
16711 lppprofileobj: windows_core::OutRef<'_, IProfSect>,
16712 ) -> windows_core::Result<()>;
16713 fn RegisterPreprocessor(
16714 &self,
16715 lpmuid: *mut MAPIUID,
16716 lpszadrtype: *mut i8,
16717 lpszdllname: *mut i8,
16718 lpszpreprocess: &windows_core::PCSTR,
16719 lpszremovepreprocessinfo: &windows_core::PCSTR,
16720 ulflags: u32,
16721 ) -> windows_core::Result<()>;
16722 fn NewUID(&self, lpmuid: *mut MAPIUID) -> windows_core::Result<()>;
16723 fn MakeInvalid(
16724 &self,
16725 ulflags: u32,
16726 lpobject: *mut core::ffi::c_void,
16727 ulrefcount: u32,
16728 cmethods: u32,
16729 ) -> windows_core::Result<()>;
16730 fn SpoolerYield(&self, ulflags: u32) -> windows_core::Result<()>;
16731 fn SpoolerNotify(
16732 &self,
16733 ulflags: u32,
16734 lpvdata: *mut core::ffi::c_void,
16735 ) -> windows_core::Result<()>;
16736 fn CreateOneOff(
16737 &self,
16738 lpszname: *mut i8,
16739 lpszadrtype: *mut i8,
16740 lpszaddress: *mut i8,
16741 ulflags: u32,
16742 lpcbentryid: *mut u32,
16743 lppentryid: *mut *mut ENTRYID,
16744 ) -> windows_core::Result<()>;
16745 fn SetProviderUID(&self, lpproviderid: *mut MAPIUID, ulflags: u32) -> windows_core::Result<()>;
16746 fn CompareEntryIDs(
16747 &self,
16748 cbentry1: u32,
16749 lpentry1: *mut ENTRYID,
16750 cbentry2: u32,
16751 lpentry2: *mut ENTRYID,
16752 ulcompareflags: u32,
16753 lpulresult: *mut u32,
16754 ) -> windows_core::Result<()>;
16755 fn OpenTemplateID(
16756 &self,
16757 cbtemplateid: u32,
16758 lptemplateid: *mut ENTRYID,
16759 ultemplateflags: u32,
16760 lpmapipropdata: windows_core::Ref<'_, IMAPIProp>,
16761 lpinterface: *mut windows_core::GUID,
16762 lppmapipropnew: windows_core::OutRef<'_, IMAPIProp>,
16763 lpmapipropsibling: windows_core::Ref<'_, IMAPIProp>,
16764 ) -> windows_core::Result<()>;
16765 fn OpenEntry(
16766 &self,
16767 cbentryid: u32,
16768 lpentryid: *mut ENTRYID,
16769 lpinterface: *mut windows_core::GUID,
16770 ulopenflags: u32,
16771 lpulobjtype: *mut u32,
16772 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
16773 ) -> windows_core::Result<()>;
16774 fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
16775 fn Address(
16776 &self,
16777 lpuluiparam: *mut usize,
16778 lpadrparms: *mut ADRPARM,
16779 lppadrlist: *mut *mut ADRLIST,
16780 ) -> windows_core::Result<()>;
16781 fn Details(
16782 &self,
16783 lpuluiparam: *mut usize,
16784 lpfndismiss: LPFNDISMISS,
16785 lpvdismisscontext: *mut core::ffi::c_void,
16786 cbentryid: u32,
16787 lpentryid: *mut ENTRYID,
16788 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
16789 lpvbuttoncontext: *mut core::ffi::c_void,
16790 lpszbuttontext: *mut i8,
16791 ulflags: u32,
16792 ) -> windows_core::Result<()>;
16793 fn NewEntry(
16794 &self,
16795 uluiparam: usize,
16796 ulflags: u32,
16797 cbeidcontainer: u32,
16798 lpeidcontainer: *mut ENTRYID,
16799 cbeidnewentrytpl: u32,
16800 lpeidnewentrytpl: *mut ENTRYID,
16801 lpcbeidnewentry: *mut u32,
16802 lppeidnewentry: *mut *mut ENTRYID,
16803 ) -> windows_core::Result<()>;
16804 fn DoConfigPropsheet(
16805 &self,
16806 uluiparam: usize,
16807 ulflags: u32,
16808 lpsztitle: *mut i8,
16809 lpdisplaytable: windows_core::Ref<'_, IMAPITable>,
16810 lpconfigdata: windows_core::Ref<'_, IMAPIProp>,
16811 ultoppage: u32,
16812 ) -> windows_core::Result<()>;
16813 fn CopyMessages(
16814 &self,
16815 lpsrcinterface: *mut windows_core::GUID,
16816 lpsrcfolder: *mut core::ffi::c_void,
16817 lpmsglist: *mut SBinaryArray,
16818 lpdestinterface: *mut windows_core::GUID,
16819 lpdestfolder: *mut core::ffi::c_void,
16820 uluiparam: usize,
16821 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
16822 ulflags: u32,
16823 ) -> windows_core::Result<()>;
16824 fn CopyFolder(
16825 &self,
16826 lpsrcinterface: *mut windows_core::GUID,
16827 lpsrcfolder: *mut core::ffi::c_void,
16828 cbentryid: u32,
16829 lpentryid: *mut ENTRYID,
16830 lpdestinterface: *mut windows_core::GUID,
16831 lpdestfolder: *mut core::ffi::c_void,
16832 lsznewfoldername: *mut i8,
16833 uluiparam: usize,
16834 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
16835 ulflags: u32,
16836 ) -> windows_core::Result<()>;
16837 fn DoCopyTo(
16838 &self,
16839 lpsrcinterface: *mut windows_core::GUID,
16840 lpsrcobj: *mut core::ffi::c_void,
16841 ciidexclude: u32,
16842 rgiidexclude: *mut windows_core::GUID,
16843 lpexcludeprops: *mut SPropTagArray,
16844 uluiparam: usize,
16845 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
16846 lpdestinterface: *mut windows_core::GUID,
16847 lpdestobj: *mut core::ffi::c_void,
16848 ulflags: u32,
16849 lppproblems: *mut *mut SPropProblemArray,
16850 ) -> windows_core::Result<()>;
16851 fn DoCopyProps(
16852 &self,
16853 lpsrcinterface: *mut windows_core::GUID,
16854 lpsrcobj: *mut core::ffi::c_void,
16855 lpincludeprops: *mut SPropTagArray,
16856 uluiparam: usize,
16857 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
16858 lpdestinterface: *mut windows_core::GUID,
16859 lpdestobj: *mut core::ffi::c_void,
16860 ulflags: u32,
16861 lppproblems: *mut *mut SPropProblemArray,
16862 ) -> windows_core::Result<()>;
16863 fn DoProgressDialog(
16864 &self,
16865 uluiparam: usize,
16866 ulflags: u32,
16867 ) -> windows_core::Result<IMAPIProgress>;
16868 fn ReadReceipt(
16869 &self,
16870 ulflags: u32,
16871 lpreadmessage: windows_core::Ref<'_, IMessage>,
16872 ) -> windows_core::Result<IMessage>;
16873 fn PrepareSubmit(
16874 &self,
16875 lpmessage: windows_core::Ref<'_, IMessage>,
16876 lpulflags: *mut u32,
16877 ) -> windows_core::Result<()>;
16878 fn ExpandRecips(
16879 &self,
16880 lpmessage: windows_core::Ref<'_, IMessage>,
16881 lpulflags: *mut u32,
16882 ) -> windows_core::Result<()>;
16883 fn UpdatePAB(
16884 &self,
16885 ulflags: u32,
16886 lpmessage: windows_core::Ref<'_, IMessage>,
16887 ) -> windows_core::Result<()>;
16888 fn DoSentMail(
16889 &self,
16890 ulflags: u32,
16891 lpmessage: windows_core::Ref<'_, IMessage>,
16892 ) -> windows_core::Result<()>;
16893 fn OpenAddressBook(
16894 &self,
16895 lpinterface: *mut windows_core::GUID,
16896 ulflags: u32,
16897 lppadrbook: windows_core::OutRef<'_, IAddrBook>,
16898 ) -> windows_core::Result<()>;
16899 fn Preprocess(
16900 &self,
16901 ulflags: u32,
16902 cbentryid: u32,
16903 lpentryid: *mut ENTRYID,
16904 ) -> windows_core::Result<()>;
16905 fn CompleteMsg(
16906 &self,
16907 ulflags: u32,
16908 cbentryid: u32,
16909 lpentryid: *mut ENTRYID,
16910 ) -> windows_core::Result<()>;
16911 fn StoreLogoffTransports(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
16912 fn StatusRecips(
16913 &self,
16914 lpmessage: windows_core::Ref<'_, IMessage>,
16915 lpreciplist: *mut ADRLIST,
16916 ) -> windows_core::Result<()>;
16917 fn WrapStoreEntryID(
16918 &self,
16919 cborigentry: u32,
16920 lporigentry: *mut ENTRYID,
16921 lpcbwrappedentry: *mut u32,
16922 lppwrappedentry: *mut *mut ENTRYID,
16923 ) -> windows_core::Result<()>;
16924 fn ModifyProfile(&self, ulflags: u32) -> windows_core::Result<()>;
16925 fn IStorageFromStream(
16926 &self,
16927 lpunkin: windows_core::Ref<'_, windows_core::IUnknown>,
16928 lpinterface: *mut windows_core::GUID,
16929 ulflags: u32,
16930 lppstorageout: windows_core::OutRef<
16931 '_,
16932 windows::Win32::System::Com::StructuredStorage::IStorage,
16933 >,
16934 ) -> windows_core::Result<()>;
16935 fn GetSvcConfigSupportObj(&self, ulflags: u32) -> windows_core::Result<IMAPISupport>;
16936}
16937impl IMAPISupport_Vtbl {
16938 pub const fn new<Identity: IMAPISupport_Impl, const OFFSET: isize>() -> Self {
16939 unsafe extern "system" fn GetLastError<Identity: IMAPISupport_Impl, const OFFSET: isize>(
16940 this: *mut core::ffi::c_void,
16941 hresult: windows_core::HRESULT,
16942 ulflags: u32,
16943 lppmapierror: *mut *mut MAPIERROR,
16944 ) -> windows_core::HRESULT {
16945 unsafe {
16946 let this: &Identity =
16947 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16948 IMAPISupport_Impl::GetLastError(
16949 this,
16950 core::mem::transmute_copy(&hresult),
16951 core::mem::transmute_copy(&ulflags),
16952 core::mem::transmute_copy(&lppmapierror),
16953 )
16954 .into()
16955 }
16956 }
16957 unsafe extern "system" fn GetMemAllocRoutines<
16958 Identity: IMAPISupport_Impl,
16959 const OFFSET: isize,
16960 >(
16961 this: *mut core::ffi::c_void,
16962 lpallocatebuffer: *mut LPALLOCATEBUFFER,
16963 lpallocatemore: *mut LPALLOCATEMORE,
16964 lpfreebuffer: *mut LPFREEBUFFER,
16965 ) -> windows_core::HRESULT {
16966 unsafe {
16967 let this: &Identity =
16968 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16969 IMAPISupport_Impl::GetMemAllocRoutines(
16970 this,
16971 core::mem::transmute_copy(&lpallocatebuffer),
16972 core::mem::transmute_copy(&lpallocatemore),
16973 core::mem::transmute_copy(&lpfreebuffer),
16974 )
16975 .into()
16976 }
16977 }
16978 unsafe extern "system" fn Subscribe<Identity: IMAPISupport_Impl, const OFFSET: isize>(
16979 this: *mut core::ffi::c_void,
16980 lpkey: *mut NOTIFKEY,
16981 uleventmask: u32,
16982 ulflags: u32,
16983 lpadvisesink: *mut core::ffi::c_void,
16984 lpulconnection: *mut usize,
16985 ) -> windows_core::HRESULT {
16986 unsafe {
16987 let this: &Identity =
16988 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16989 IMAPISupport_Impl::Subscribe(
16990 this,
16991 core::mem::transmute_copy(&lpkey),
16992 core::mem::transmute_copy(&uleventmask),
16993 core::mem::transmute_copy(&ulflags),
16994 core::mem::transmute_copy(&lpadvisesink),
16995 core::mem::transmute_copy(&lpulconnection),
16996 )
16997 .into()
16998 }
16999 }
17000 unsafe extern "system" fn Unsubscribe<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17001 this: *mut core::ffi::c_void,
17002 ulconnection: usize,
17003 ) -> windows_core::HRESULT {
17004 unsafe {
17005 let this: &Identity =
17006 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17007 IMAPISupport_Impl::Unsubscribe(this, core::mem::transmute_copy(&ulconnection))
17008 .into()
17009 }
17010 }
17011 unsafe extern "system" fn Notify<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17012 this: *mut core::ffi::c_void,
17013 lpkey: *mut NOTIFKEY,
17014 cnotification: u32,
17015 lpnotifications: *mut NOTIFICATION,
17016 lpulflags: *mut u32,
17017 ) -> windows_core::HRESULT {
17018 unsafe {
17019 let this: &Identity =
17020 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17021 IMAPISupport_Impl::Notify(
17022 this,
17023 core::mem::transmute_copy(&lpkey),
17024 core::mem::transmute_copy(&cnotification),
17025 core::mem::transmute_copy(&lpnotifications),
17026 core::mem::transmute_copy(&lpulflags),
17027 )
17028 .into()
17029 }
17030 }
17031 unsafe extern "system" fn ModifyStatusRow<
17032 Identity: IMAPISupport_Impl,
17033 const OFFSET: isize,
17034 >(
17035 this: *mut core::ffi::c_void,
17036 cvalues: u32,
17037 lpcolumnvals: *mut SPropValue,
17038 ulflags: u32,
17039 ) -> windows_core::HRESULT {
17040 unsafe {
17041 let this: &Identity =
17042 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17043 IMAPISupport_Impl::ModifyStatusRow(
17044 this,
17045 core::mem::transmute_copy(&cvalues),
17046 core::mem::transmute_copy(&lpcolumnvals),
17047 core::mem::transmute_copy(&ulflags),
17048 )
17049 .into()
17050 }
17051 }
17052 unsafe extern "system" fn OpenProfileSection<
17053 Identity: IMAPISupport_Impl,
17054 const OFFSET: isize,
17055 >(
17056 this: *mut core::ffi::c_void,
17057 lpuid: *mut MAPIUID,
17058 ulflags: u32,
17059 lppprofileobj: *mut *mut core::ffi::c_void,
17060 ) -> windows_core::HRESULT {
17061 unsafe {
17062 let this: &Identity =
17063 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17064 IMAPISupport_Impl::OpenProfileSection(
17065 this,
17066 core::mem::transmute_copy(&lpuid),
17067 core::mem::transmute_copy(&ulflags),
17068 core::mem::transmute_copy(&lppprofileobj),
17069 )
17070 .into()
17071 }
17072 }
17073 unsafe extern "system" fn RegisterPreprocessor<
17074 Identity: IMAPISupport_Impl,
17075 const OFFSET: isize,
17076 >(
17077 this: *mut core::ffi::c_void,
17078 lpmuid: *mut MAPIUID,
17079 lpszadrtype: *mut i8,
17080 lpszdllname: *mut i8,
17081 lpszpreprocess: windows_core::PCSTR,
17082 lpszremovepreprocessinfo: windows_core::PCSTR,
17083 ulflags: u32,
17084 ) -> windows_core::HRESULT {
17085 unsafe {
17086 let this: &Identity =
17087 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17088 IMAPISupport_Impl::RegisterPreprocessor(
17089 this,
17090 core::mem::transmute_copy(&lpmuid),
17091 core::mem::transmute_copy(&lpszadrtype),
17092 core::mem::transmute_copy(&lpszdllname),
17093 core::mem::transmute(&lpszpreprocess),
17094 core::mem::transmute(&lpszremovepreprocessinfo),
17095 core::mem::transmute_copy(&ulflags),
17096 )
17097 .into()
17098 }
17099 }
17100 unsafe extern "system" fn NewUID<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17101 this: *mut core::ffi::c_void,
17102 lpmuid: *mut MAPIUID,
17103 ) -> windows_core::HRESULT {
17104 unsafe {
17105 let this: &Identity =
17106 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17107 IMAPISupport_Impl::NewUID(this, core::mem::transmute_copy(&lpmuid)).into()
17108 }
17109 }
17110 unsafe extern "system" fn MakeInvalid<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17111 this: *mut core::ffi::c_void,
17112 ulflags: u32,
17113 lpobject: *mut core::ffi::c_void,
17114 ulrefcount: u32,
17115 cmethods: u32,
17116 ) -> windows_core::HRESULT {
17117 unsafe {
17118 let this: &Identity =
17119 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17120 IMAPISupport_Impl::MakeInvalid(
17121 this,
17122 core::mem::transmute_copy(&ulflags),
17123 core::mem::transmute_copy(&lpobject),
17124 core::mem::transmute_copy(&ulrefcount),
17125 core::mem::transmute_copy(&cmethods),
17126 )
17127 .into()
17128 }
17129 }
17130 unsafe extern "system" fn SpoolerYield<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17131 this: *mut core::ffi::c_void,
17132 ulflags: u32,
17133 ) -> windows_core::HRESULT {
17134 unsafe {
17135 let this: &Identity =
17136 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17137 IMAPISupport_Impl::SpoolerYield(this, core::mem::transmute_copy(&ulflags)).into()
17138 }
17139 }
17140 unsafe extern "system" fn SpoolerNotify<
17141 Identity: IMAPISupport_Impl,
17142 const OFFSET: isize,
17143 >(
17144 this: *mut core::ffi::c_void,
17145 ulflags: u32,
17146 lpvdata: *mut core::ffi::c_void,
17147 ) -> windows_core::HRESULT {
17148 unsafe {
17149 let this: &Identity =
17150 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17151 IMAPISupport_Impl::SpoolerNotify(
17152 this,
17153 core::mem::transmute_copy(&ulflags),
17154 core::mem::transmute_copy(&lpvdata),
17155 )
17156 .into()
17157 }
17158 }
17159 unsafe extern "system" fn CreateOneOff<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17160 this: *mut core::ffi::c_void,
17161 lpszname: *mut i8,
17162 lpszadrtype: *mut i8,
17163 lpszaddress: *mut i8,
17164 ulflags: u32,
17165 lpcbentryid: *mut u32,
17166 lppentryid: *mut *mut ENTRYID,
17167 ) -> windows_core::HRESULT {
17168 unsafe {
17169 let this: &Identity =
17170 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17171 IMAPISupport_Impl::CreateOneOff(
17172 this,
17173 core::mem::transmute_copy(&lpszname),
17174 core::mem::transmute_copy(&lpszadrtype),
17175 core::mem::transmute_copy(&lpszaddress),
17176 core::mem::transmute_copy(&ulflags),
17177 core::mem::transmute_copy(&lpcbentryid),
17178 core::mem::transmute_copy(&lppentryid),
17179 )
17180 .into()
17181 }
17182 }
17183 unsafe extern "system" fn SetProviderUID<
17184 Identity: IMAPISupport_Impl,
17185 const OFFSET: isize,
17186 >(
17187 this: *mut core::ffi::c_void,
17188 lpproviderid: *mut MAPIUID,
17189 ulflags: u32,
17190 ) -> windows_core::HRESULT {
17191 unsafe {
17192 let this: &Identity =
17193 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17194 IMAPISupport_Impl::SetProviderUID(
17195 this,
17196 core::mem::transmute_copy(&lpproviderid),
17197 core::mem::transmute_copy(&ulflags),
17198 )
17199 .into()
17200 }
17201 }
17202 unsafe extern "system" fn CompareEntryIDs<
17203 Identity: IMAPISupport_Impl,
17204 const OFFSET: isize,
17205 >(
17206 this: *mut core::ffi::c_void,
17207 cbentry1: u32,
17208 lpentry1: *mut ENTRYID,
17209 cbentry2: u32,
17210 lpentry2: *mut ENTRYID,
17211 ulcompareflags: u32,
17212 lpulresult: *mut u32,
17213 ) -> windows_core::HRESULT {
17214 unsafe {
17215 let this: &Identity =
17216 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17217 IMAPISupport_Impl::CompareEntryIDs(
17218 this,
17219 core::mem::transmute_copy(&cbentry1),
17220 core::mem::transmute_copy(&lpentry1),
17221 core::mem::transmute_copy(&cbentry2),
17222 core::mem::transmute_copy(&lpentry2),
17223 core::mem::transmute_copy(&ulcompareflags),
17224 core::mem::transmute_copy(&lpulresult),
17225 )
17226 .into()
17227 }
17228 }
17229 unsafe extern "system" fn OpenTemplateID<
17230 Identity: IMAPISupport_Impl,
17231 const OFFSET: isize,
17232 >(
17233 this: *mut core::ffi::c_void,
17234 cbtemplateid: u32,
17235 lptemplateid: *mut ENTRYID,
17236 ultemplateflags: u32,
17237 lpmapipropdata: *mut core::ffi::c_void,
17238 lpinterface: *mut windows_core::GUID,
17239 lppmapipropnew: *mut *mut core::ffi::c_void,
17240 lpmapipropsibling: *mut core::ffi::c_void,
17241 ) -> windows_core::HRESULT {
17242 unsafe {
17243 let this: &Identity =
17244 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17245 IMAPISupport_Impl::OpenTemplateID(
17246 this,
17247 core::mem::transmute_copy(&cbtemplateid),
17248 core::mem::transmute_copy(&lptemplateid),
17249 core::mem::transmute_copy(&ultemplateflags),
17250 core::mem::transmute_copy(&lpmapipropdata),
17251 core::mem::transmute_copy(&lpinterface),
17252 core::mem::transmute_copy(&lppmapipropnew),
17253 core::mem::transmute_copy(&lpmapipropsibling),
17254 )
17255 .into()
17256 }
17257 }
17258 unsafe extern "system" fn OpenEntry<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17259 this: *mut core::ffi::c_void,
17260 cbentryid: u32,
17261 lpentryid: *mut ENTRYID,
17262 lpinterface: *mut windows_core::GUID,
17263 ulopenflags: u32,
17264 lpulobjtype: *mut u32,
17265 lppunk: *mut *mut core::ffi::c_void,
17266 ) -> windows_core::HRESULT {
17267 unsafe {
17268 let this: &Identity =
17269 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17270 IMAPISupport_Impl::OpenEntry(
17271 this,
17272 core::mem::transmute_copy(&cbentryid),
17273 core::mem::transmute_copy(&lpentryid),
17274 core::mem::transmute_copy(&lpinterface),
17275 core::mem::transmute_copy(&ulopenflags),
17276 core::mem::transmute_copy(&lpulobjtype),
17277 core::mem::transmute_copy(&lppunk),
17278 )
17279 .into()
17280 }
17281 }
17282 unsafe extern "system" fn GetOneOffTable<
17283 Identity: IMAPISupport_Impl,
17284 const OFFSET: isize,
17285 >(
17286 this: *mut core::ffi::c_void,
17287 ulflags: u32,
17288 lpptable: *mut *mut core::ffi::c_void,
17289 ) -> windows_core::HRESULT {
17290 unsafe {
17291 let this: &Identity =
17292 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17293 match IMAPISupport_Impl::GetOneOffTable(this, core::mem::transmute_copy(&ulflags)) {
17294 Ok(ok__) => {
17295 lpptable.write(core::mem::transmute(ok__));
17296 windows_core::HRESULT(0)
17297 }
17298 Err(err) => err.into(),
17299 }
17300 }
17301 }
17302 unsafe extern "system" fn Address<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17303 this: *mut core::ffi::c_void,
17304 lpuluiparam: *mut usize,
17305 lpadrparms: *mut ADRPARM,
17306 lppadrlist: *mut *mut ADRLIST,
17307 ) -> windows_core::HRESULT {
17308 unsafe {
17309 let this: &Identity =
17310 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17311 IMAPISupport_Impl::Address(
17312 this,
17313 core::mem::transmute_copy(&lpuluiparam),
17314 core::mem::transmute_copy(&lpadrparms),
17315 core::mem::transmute_copy(&lppadrlist),
17316 )
17317 .into()
17318 }
17319 }
17320 unsafe extern "system" fn Details<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17321 this: *mut core::ffi::c_void,
17322 lpuluiparam: *mut usize,
17323 lpfndismiss: LPFNDISMISS,
17324 lpvdismisscontext: *mut core::ffi::c_void,
17325 cbentryid: u32,
17326 lpentryid: *mut ENTRYID,
17327 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
17328 lpvbuttoncontext: *mut core::ffi::c_void,
17329 lpszbuttontext: *mut i8,
17330 ulflags: u32,
17331 ) -> windows_core::HRESULT {
17332 unsafe {
17333 let this: &Identity =
17334 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17335 IMAPISupport_Impl::Details(
17336 this,
17337 core::mem::transmute_copy(&lpuluiparam),
17338 core::mem::transmute_copy(&lpfndismiss),
17339 core::mem::transmute_copy(&lpvdismisscontext),
17340 core::mem::transmute_copy(&cbentryid),
17341 core::mem::transmute_copy(&lpentryid),
17342 core::mem::transmute_copy(&lpfbuttoncallback),
17343 core::mem::transmute_copy(&lpvbuttoncontext),
17344 core::mem::transmute_copy(&lpszbuttontext),
17345 core::mem::transmute_copy(&ulflags),
17346 )
17347 .into()
17348 }
17349 }
17350 unsafe extern "system" fn NewEntry<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17351 this: *mut core::ffi::c_void,
17352 uluiparam: usize,
17353 ulflags: u32,
17354 cbeidcontainer: u32,
17355 lpeidcontainer: *mut ENTRYID,
17356 cbeidnewentrytpl: u32,
17357 lpeidnewentrytpl: *mut ENTRYID,
17358 lpcbeidnewentry: *mut u32,
17359 lppeidnewentry: *mut *mut ENTRYID,
17360 ) -> windows_core::HRESULT {
17361 unsafe {
17362 let this: &Identity =
17363 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17364 IMAPISupport_Impl::NewEntry(
17365 this,
17366 core::mem::transmute_copy(&uluiparam),
17367 core::mem::transmute_copy(&ulflags),
17368 core::mem::transmute_copy(&cbeidcontainer),
17369 core::mem::transmute_copy(&lpeidcontainer),
17370 core::mem::transmute_copy(&cbeidnewentrytpl),
17371 core::mem::transmute_copy(&lpeidnewentrytpl),
17372 core::mem::transmute_copy(&lpcbeidnewentry),
17373 core::mem::transmute_copy(&lppeidnewentry),
17374 )
17375 .into()
17376 }
17377 }
17378 unsafe extern "system" fn DoConfigPropsheet<
17379 Identity: IMAPISupport_Impl,
17380 const OFFSET: isize,
17381 >(
17382 this: *mut core::ffi::c_void,
17383 uluiparam: usize,
17384 ulflags: u32,
17385 lpsztitle: *mut i8,
17386 lpdisplaytable: *mut core::ffi::c_void,
17387 lpconfigdata: *mut core::ffi::c_void,
17388 ultoppage: u32,
17389 ) -> windows_core::HRESULT {
17390 unsafe {
17391 let this: &Identity =
17392 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17393 IMAPISupport_Impl::DoConfigPropsheet(
17394 this,
17395 core::mem::transmute_copy(&uluiparam),
17396 core::mem::transmute_copy(&ulflags),
17397 core::mem::transmute_copy(&lpsztitle),
17398 core::mem::transmute_copy(&lpdisplaytable),
17399 core::mem::transmute_copy(&lpconfigdata),
17400 core::mem::transmute_copy(&ultoppage),
17401 )
17402 .into()
17403 }
17404 }
17405 unsafe extern "system" fn CopyMessages<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17406 this: *mut core::ffi::c_void,
17407 lpsrcinterface: *mut windows_core::GUID,
17408 lpsrcfolder: *mut core::ffi::c_void,
17409 lpmsglist: *mut SBinaryArray,
17410 lpdestinterface: *mut windows_core::GUID,
17411 lpdestfolder: *mut core::ffi::c_void,
17412 uluiparam: usize,
17413 lpprogress: *mut core::ffi::c_void,
17414 ulflags: u32,
17415 ) -> windows_core::HRESULT {
17416 unsafe {
17417 let this: &Identity =
17418 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17419 IMAPISupport_Impl::CopyMessages(
17420 this,
17421 core::mem::transmute_copy(&lpsrcinterface),
17422 core::mem::transmute_copy(&lpsrcfolder),
17423 core::mem::transmute_copy(&lpmsglist),
17424 core::mem::transmute_copy(&lpdestinterface),
17425 core::mem::transmute_copy(&lpdestfolder),
17426 core::mem::transmute_copy(&uluiparam),
17427 core::mem::transmute_copy(&lpprogress),
17428 core::mem::transmute_copy(&ulflags),
17429 )
17430 .into()
17431 }
17432 }
17433 unsafe extern "system" fn CopyFolder<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17434 this: *mut core::ffi::c_void,
17435 lpsrcinterface: *mut windows_core::GUID,
17436 lpsrcfolder: *mut core::ffi::c_void,
17437 cbentryid: u32,
17438 lpentryid: *mut ENTRYID,
17439 lpdestinterface: *mut windows_core::GUID,
17440 lpdestfolder: *mut core::ffi::c_void,
17441 lsznewfoldername: *mut i8,
17442 uluiparam: usize,
17443 lpprogress: *mut core::ffi::c_void,
17444 ulflags: u32,
17445 ) -> windows_core::HRESULT {
17446 unsafe {
17447 let this: &Identity =
17448 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17449 IMAPISupport_Impl::CopyFolder(
17450 this,
17451 core::mem::transmute_copy(&lpsrcinterface),
17452 core::mem::transmute_copy(&lpsrcfolder),
17453 core::mem::transmute_copy(&cbentryid),
17454 core::mem::transmute_copy(&lpentryid),
17455 core::mem::transmute_copy(&lpdestinterface),
17456 core::mem::transmute_copy(&lpdestfolder),
17457 core::mem::transmute_copy(&lsznewfoldername),
17458 core::mem::transmute_copy(&uluiparam),
17459 core::mem::transmute_copy(&lpprogress),
17460 core::mem::transmute_copy(&ulflags),
17461 )
17462 .into()
17463 }
17464 }
17465 unsafe extern "system" fn DoCopyTo<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17466 this: *mut core::ffi::c_void,
17467 lpsrcinterface: *mut windows_core::GUID,
17468 lpsrcobj: *mut core::ffi::c_void,
17469 ciidexclude: u32,
17470 rgiidexclude: *mut windows_core::GUID,
17471 lpexcludeprops: *mut SPropTagArray,
17472 uluiparam: usize,
17473 lpprogress: *mut core::ffi::c_void,
17474 lpdestinterface: *mut windows_core::GUID,
17475 lpdestobj: *mut core::ffi::c_void,
17476 ulflags: u32,
17477 lppproblems: *mut *mut SPropProblemArray,
17478 ) -> windows_core::HRESULT {
17479 unsafe {
17480 let this: &Identity =
17481 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17482 IMAPISupport_Impl::DoCopyTo(
17483 this,
17484 core::mem::transmute_copy(&lpsrcinterface),
17485 core::mem::transmute_copy(&lpsrcobj),
17486 core::mem::transmute_copy(&ciidexclude),
17487 core::mem::transmute_copy(&rgiidexclude),
17488 core::mem::transmute_copy(&lpexcludeprops),
17489 core::mem::transmute_copy(&uluiparam),
17490 core::mem::transmute_copy(&lpprogress),
17491 core::mem::transmute_copy(&lpdestinterface),
17492 core::mem::transmute_copy(&lpdestobj),
17493 core::mem::transmute_copy(&ulflags),
17494 core::mem::transmute_copy(&lppproblems),
17495 )
17496 .into()
17497 }
17498 }
17499 unsafe extern "system" fn DoCopyProps<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17500 this: *mut core::ffi::c_void,
17501 lpsrcinterface: *mut windows_core::GUID,
17502 lpsrcobj: *mut core::ffi::c_void,
17503 lpincludeprops: *mut SPropTagArray,
17504 uluiparam: usize,
17505 lpprogress: *mut core::ffi::c_void,
17506 lpdestinterface: *mut windows_core::GUID,
17507 lpdestobj: *mut core::ffi::c_void,
17508 ulflags: u32,
17509 lppproblems: *mut *mut SPropProblemArray,
17510 ) -> windows_core::HRESULT {
17511 unsafe {
17512 let this: &Identity =
17513 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17514 IMAPISupport_Impl::DoCopyProps(
17515 this,
17516 core::mem::transmute_copy(&lpsrcinterface),
17517 core::mem::transmute_copy(&lpsrcobj),
17518 core::mem::transmute_copy(&lpincludeprops),
17519 core::mem::transmute_copy(&uluiparam),
17520 core::mem::transmute_copy(&lpprogress),
17521 core::mem::transmute_copy(&lpdestinterface),
17522 core::mem::transmute_copy(&lpdestobj),
17523 core::mem::transmute_copy(&ulflags),
17524 core::mem::transmute_copy(&lppproblems),
17525 )
17526 .into()
17527 }
17528 }
17529 unsafe extern "system" fn DoProgressDialog<
17530 Identity: IMAPISupport_Impl,
17531 const OFFSET: isize,
17532 >(
17533 this: *mut core::ffi::c_void,
17534 uluiparam: usize,
17535 ulflags: u32,
17536 lppprogress: *mut *mut core::ffi::c_void,
17537 ) -> windows_core::HRESULT {
17538 unsafe {
17539 let this: &Identity =
17540 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17541 match IMAPISupport_Impl::DoProgressDialog(
17542 this,
17543 core::mem::transmute_copy(&uluiparam),
17544 core::mem::transmute_copy(&ulflags),
17545 ) {
17546 Ok(ok__) => {
17547 lppprogress.write(core::mem::transmute(ok__));
17548 windows_core::HRESULT(0)
17549 }
17550 Err(err) => err.into(),
17551 }
17552 }
17553 }
17554 unsafe extern "system" fn ReadReceipt<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17555 this: *mut core::ffi::c_void,
17556 ulflags: u32,
17557 lpreadmessage: *mut core::ffi::c_void,
17558 lppemptymessage: *mut *mut core::ffi::c_void,
17559 ) -> windows_core::HRESULT {
17560 unsafe {
17561 let this: &Identity =
17562 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17563 match IMAPISupport_Impl::ReadReceipt(
17564 this,
17565 core::mem::transmute_copy(&ulflags),
17566 core::mem::transmute_copy(&lpreadmessage),
17567 ) {
17568 Ok(ok__) => {
17569 lppemptymessage.write(core::mem::transmute(ok__));
17570 windows_core::HRESULT(0)
17571 }
17572 Err(err) => err.into(),
17573 }
17574 }
17575 }
17576 unsafe extern "system" fn PrepareSubmit<
17577 Identity: IMAPISupport_Impl,
17578 const OFFSET: isize,
17579 >(
17580 this: *mut core::ffi::c_void,
17581 lpmessage: *mut core::ffi::c_void,
17582 lpulflags: *mut u32,
17583 ) -> windows_core::HRESULT {
17584 unsafe {
17585 let this: &Identity =
17586 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17587 IMAPISupport_Impl::PrepareSubmit(
17588 this,
17589 core::mem::transmute_copy(&lpmessage),
17590 core::mem::transmute_copy(&lpulflags),
17591 )
17592 .into()
17593 }
17594 }
17595 unsafe extern "system" fn ExpandRecips<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17596 this: *mut core::ffi::c_void,
17597 lpmessage: *mut core::ffi::c_void,
17598 lpulflags: *mut u32,
17599 ) -> windows_core::HRESULT {
17600 unsafe {
17601 let this: &Identity =
17602 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17603 IMAPISupport_Impl::ExpandRecips(
17604 this,
17605 core::mem::transmute_copy(&lpmessage),
17606 core::mem::transmute_copy(&lpulflags),
17607 )
17608 .into()
17609 }
17610 }
17611 unsafe extern "system" fn UpdatePAB<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17612 this: *mut core::ffi::c_void,
17613 ulflags: u32,
17614 lpmessage: *mut core::ffi::c_void,
17615 ) -> windows_core::HRESULT {
17616 unsafe {
17617 let this: &Identity =
17618 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17619 IMAPISupport_Impl::UpdatePAB(
17620 this,
17621 core::mem::transmute_copy(&ulflags),
17622 core::mem::transmute_copy(&lpmessage),
17623 )
17624 .into()
17625 }
17626 }
17627 unsafe extern "system" fn DoSentMail<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17628 this: *mut core::ffi::c_void,
17629 ulflags: u32,
17630 lpmessage: *mut core::ffi::c_void,
17631 ) -> windows_core::HRESULT {
17632 unsafe {
17633 let this: &Identity =
17634 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17635 IMAPISupport_Impl::DoSentMail(
17636 this,
17637 core::mem::transmute_copy(&ulflags),
17638 core::mem::transmute_copy(&lpmessage),
17639 )
17640 .into()
17641 }
17642 }
17643 unsafe extern "system" fn OpenAddressBook<
17644 Identity: IMAPISupport_Impl,
17645 const OFFSET: isize,
17646 >(
17647 this: *mut core::ffi::c_void,
17648 lpinterface: *mut windows_core::GUID,
17649 ulflags: u32,
17650 lppadrbook: *mut *mut core::ffi::c_void,
17651 ) -> windows_core::HRESULT {
17652 unsafe {
17653 let this: &Identity =
17654 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17655 IMAPISupport_Impl::OpenAddressBook(
17656 this,
17657 core::mem::transmute_copy(&lpinterface),
17658 core::mem::transmute_copy(&ulflags),
17659 core::mem::transmute_copy(&lppadrbook),
17660 )
17661 .into()
17662 }
17663 }
17664 unsafe extern "system" fn Preprocess<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17665 this: *mut core::ffi::c_void,
17666 ulflags: u32,
17667 cbentryid: u32,
17668 lpentryid: *mut ENTRYID,
17669 ) -> windows_core::HRESULT {
17670 unsafe {
17671 let this: &Identity =
17672 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17673 IMAPISupport_Impl::Preprocess(
17674 this,
17675 core::mem::transmute_copy(&ulflags),
17676 core::mem::transmute_copy(&cbentryid),
17677 core::mem::transmute_copy(&lpentryid),
17678 )
17679 .into()
17680 }
17681 }
17682 unsafe extern "system" fn CompleteMsg<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17683 this: *mut core::ffi::c_void,
17684 ulflags: u32,
17685 cbentryid: u32,
17686 lpentryid: *mut ENTRYID,
17687 ) -> windows_core::HRESULT {
17688 unsafe {
17689 let this: &Identity =
17690 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17691 IMAPISupport_Impl::CompleteMsg(
17692 this,
17693 core::mem::transmute_copy(&ulflags),
17694 core::mem::transmute_copy(&cbentryid),
17695 core::mem::transmute_copy(&lpentryid),
17696 )
17697 .into()
17698 }
17699 }
17700 unsafe extern "system" fn StoreLogoffTransports<
17701 Identity: IMAPISupport_Impl,
17702 const OFFSET: isize,
17703 >(
17704 this: *mut core::ffi::c_void,
17705 lpulflags: *mut u32,
17706 ) -> windows_core::HRESULT {
17707 unsafe {
17708 let this: &Identity =
17709 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17710 IMAPISupport_Impl::StoreLogoffTransports(
17711 this,
17712 core::mem::transmute_copy(&lpulflags),
17713 )
17714 .into()
17715 }
17716 }
17717 unsafe extern "system" fn StatusRecips<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17718 this: *mut core::ffi::c_void,
17719 lpmessage: *mut core::ffi::c_void,
17720 lpreciplist: *mut ADRLIST,
17721 ) -> windows_core::HRESULT {
17722 unsafe {
17723 let this: &Identity =
17724 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17725 IMAPISupport_Impl::StatusRecips(
17726 this,
17727 core::mem::transmute_copy(&lpmessage),
17728 core::mem::transmute_copy(&lpreciplist),
17729 )
17730 .into()
17731 }
17732 }
17733 unsafe extern "system" fn WrapStoreEntryID<
17734 Identity: IMAPISupport_Impl,
17735 const OFFSET: isize,
17736 >(
17737 this: *mut core::ffi::c_void,
17738 cborigentry: u32,
17739 lporigentry: *mut ENTRYID,
17740 lpcbwrappedentry: *mut u32,
17741 lppwrappedentry: *mut *mut ENTRYID,
17742 ) -> windows_core::HRESULT {
17743 unsafe {
17744 let this: &Identity =
17745 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17746 IMAPISupport_Impl::WrapStoreEntryID(
17747 this,
17748 core::mem::transmute_copy(&cborigentry),
17749 core::mem::transmute_copy(&lporigentry),
17750 core::mem::transmute_copy(&lpcbwrappedentry),
17751 core::mem::transmute_copy(&lppwrappedentry),
17752 )
17753 .into()
17754 }
17755 }
17756 unsafe extern "system" fn ModifyProfile<
17757 Identity: IMAPISupport_Impl,
17758 const OFFSET: isize,
17759 >(
17760 this: *mut core::ffi::c_void,
17761 ulflags: u32,
17762 ) -> windows_core::HRESULT {
17763 unsafe {
17764 let this: &Identity =
17765 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17766 IMAPISupport_Impl::ModifyProfile(this, core::mem::transmute_copy(&ulflags)).into()
17767 }
17768 }
17769 unsafe extern "system" fn IStorageFromStream<
17770 Identity: IMAPISupport_Impl,
17771 const OFFSET: isize,
17772 >(
17773 this: *mut core::ffi::c_void,
17774 lpunkin: *mut core::ffi::c_void,
17775 lpinterface: *mut windows_core::GUID,
17776 ulflags: u32,
17777 lppstorageout: *mut *mut core::ffi::c_void,
17778 ) -> windows_core::HRESULT {
17779 unsafe {
17780 let this: &Identity =
17781 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17782 IMAPISupport_Impl::IStorageFromStream(
17783 this,
17784 core::mem::transmute_copy(&lpunkin),
17785 core::mem::transmute_copy(&lpinterface),
17786 core::mem::transmute_copy(&ulflags),
17787 core::mem::transmute_copy(&lppstorageout),
17788 )
17789 .into()
17790 }
17791 }
17792 unsafe extern "system" fn GetSvcConfigSupportObj<
17793 Identity: IMAPISupport_Impl,
17794 const OFFSET: isize,
17795 >(
17796 this: *mut core::ffi::c_void,
17797 ulflags: u32,
17798 lppsvcsupport: *mut *mut core::ffi::c_void,
17799 ) -> windows_core::HRESULT {
17800 unsafe {
17801 let this: &Identity =
17802 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17803 match IMAPISupport_Impl::GetSvcConfigSupportObj(
17804 this,
17805 core::mem::transmute_copy(&ulflags),
17806 ) {
17807 Ok(ok__) => {
17808 lppsvcsupport.write(core::mem::transmute(ok__));
17809 windows_core::HRESULT(0)
17810 }
17811 Err(err) => err.into(),
17812 }
17813 }
17814 }
17815 Self {
17816 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17817 GetLastError: GetLastError::<Identity, OFFSET>,
17818 GetMemAllocRoutines: GetMemAllocRoutines::<Identity, OFFSET>,
17819 Subscribe: Subscribe::<Identity, OFFSET>,
17820 Unsubscribe: Unsubscribe::<Identity, OFFSET>,
17821 Notify: Notify::<Identity, OFFSET>,
17822 ModifyStatusRow: ModifyStatusRow::<Identity, OFFSET>,
17823 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
17824 RegisterPreprocessor: RegisterPreprocessor::<Identity, OFFSET>,
17825 NewUID: NewUID::<Identity, OFFSET>,
17826 MakeInvalid: MakeInvalid::<Identity, OFFSET>,
17827 SpoolerYield: SpoolerYield::<Identity, OFFSET>,
17828 SpoolerNotify: SpoolerNotify::<Identity, OFFSET>,
17829 CreateOneOff: CreateOneOff::<Identity, OFFSET>,
17830 SetProviderUID: SetProviderUID::<Identity, OFFSET>,
17831 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
17832 OpenTemplateID: OpenTemplateID::<Identity, OFFSET>,
17833 OpenEntry: OpenEntry::<Identity, OFFSET>,
17834 GetOneOffTable: GetOneOffTable::<Identity, OFFSET>,
17835 Address: Address::<Identity, OFFSET>,
17836 Details: Details::<Identity, OFFSET>,
17837 NewEntry: NewEntry::<Identity, OFFSET>,
17838 DoConfigPropsheet: DoConfigPropsheet::<Identity, OFFSET>,
17839 CopyMessages: CopyMessages::<Identity, OFFSET>,
17840 CopyFolder: CopyFolder::<Identity, OFFSET>,
17841 DoCopyTo: DoCopyTo::<Identity, OFFSET>,
17842 DoCopyProps: DoCopyProps::<Identity, OFFSET>,
17843 DoProgressDialog: DoProgressDialog::<Identity, OFFSET>,
17844 ReadReceipt: ReadReceipt::<Identity, OFFSET>,
17845 PrepareSubmit: PrepareSubmit::<Identity, OFFSET>,
17846 ExpandRecips: ExpandRecips::<Identity, OFFSET>,
17847 UpdatePAB: UpdatePAB::<Identity, OFFSET>,
17848 DoSentMail: DoSentMail::<Identity, OFFSET>,
17849 OpenAddressBook: OpenAddressBook::<Identity, OFFSET>,
17850 Preprocess: Preprocess::<Identity, OFFSET>,
17851 CompleteMsg: CompleteMsg::<Identity, OFFSET>,
17852 StoreLogoffTransports: StoreLogoffTransports::<Identity, OFFSET>,
17853 StatusRecips: StatusRecips::<Identity, OFFSET>,
17854 WrapStoreEntryID: WrapStoreEntryID::<Identity, OFFSET>,
17855 ModifyProfile: ModifyProfile::<Identity, OFFSET>,
17856 IStorageFromStream: IStorageFromStream::<Identity, OFFSET>,
17857 GetSvcConfigSupportObj: GetSvcConfigSupportObj::<Identity, OFFSET>,
17858 }
17859 }
17860 pub fn matches(iid: &windows_core::GUID) -> bool {
17861 iid == &<IMAPISupport as windows_core::Interface>::IID
17862 }
17863}
17864impl windows_core::RuntimeName for IMAPISupport {}
17865windows_core::imp::define_interface!(
17866 IMAPITable,
17867 IMAPITable_Vtbl,
17868 0x00020301_0000_0000_c000_000000000046
17869);
17870windows_core::imp::interface_hierarchy!(IMAPITable, windows_core::IUnknown);
17871impl IMAPITable {
17872 pub unsafe fn GetLastError(
17873 &self,
17874 hresult: windows_core::HRESULT,
17875 ulflags: u32,
17876 lppmapierror: *mut *mut MAPIERROR,
17877 ) -> windows_core::Result<()> {
17878 unsafe {
17879 (windows_core::Interface::vtable(self).GetLastError)(
17880 windows_core::Interface::as_raw(self),
17881 hresult,
17882 ulflags,
17883 lppmapierror as _,
17884 )
17885 .ok()
17886 }
17887 }
17888 pub unsafe fn Advise<P1>(
17889 &self,
17890 uleventmask: u32,
17891 lpadvisesink: P1,
17892 lpulconnection: *mut usize,
17893 ) -> windows_core::Result<()>
17894 where
17895 P1: windows_core::Param<IMAPIAdviseSink>,
17896 {
17897 unsafe {
17898 (windows_core::Interface::vtable(self).Advise)(
17899 windows_core::Interface::as_raw(self),
17900 uleventmask,
17901 lpadvisesink.param().abi(),
17902 lpulconnection as _,
17903 )
17904 .ok()
17905 }
17906 }
17907 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
17908 unsafe {
17909 (windows_core::Interface::vtable(self).Unadvise)(
17910 windows_core::Interface::as_raw(self),
17911 ulconnection,
17912 )
17913 .ok()
17914 }
17915 }
17916 pub unsafe fn GetStatus(
17917 &self,
17918 lpultablestatus: *mut u32,
17919 lpultabletype: *mut u32,
17920 ) -> windows_core::Result<()> {
17921 unsafe {
17922 (windows_core::Interface::vtable(self).GetStatus)(
17923 windows_core::Interface::as_raw(self),
17924 lpultablestatus as _,
17925 lpultabletype as _,
17926 )
17927 .ok()
17928 }
17929 }
17930 pub unsafe fn SetColumns(
17931 &self,
17932 lpproptagarray: *mut SPropTagArray,
17933 ulflags: u32,
17934 ) -> windows_core::Result<()> {
17935 unsafe {
17936 (windows_core::Interface::vtable(self).SetColumns)(
17937 windows_core::Interface::as_raw(self),
17938 lpproptagarray as _,
17939 ulflags,
17940 )
17941 .ok()
17942 }
17943 }
17944 pub unsafe fn QueryColumns(
17945 &self,
17946 ulflags: u32,
17947 lpproptagarray: *mut *mut SPropTagArray,
17948 ) -> windows_core::Result<()> {
17949 unsafe {
17950 (windows_core::Interface::vtable(self).QueryColumns)(
17951 windows_core::Interface::as_raw(self),
17952 ulflags,
17953 lpproptagarray as _,
17954 )
17955 .ok()
17956 }
17957 }
17958 pub unsafe fn GetRowCount(
17959 &self,
17960 ulflags: u32,
17961 lpulcount: *mut u32,
17962 ) -> windows_core::Result<()> {
17963 unsafe {
17964 (windows_core::Interface::vtable(self).GetRowCount)(
17965 windows_core::Interface::as_raw(self),
17966 ulflags,
17967 lpulcount as _,
17968 )
17969 .ok()
17970 }
17971 }
17972 pub unsafe fn SeekRow(
17973 &self,
17974 bkorigin: usize,
17975 lrowcount: i32,
17976 lplrowssought: *mut i32,
17977 ) -> windows_core::Result<()> {
17978 unsafe {
17979 (windows_core::Interface::vtable(self).SeekRow)(
17980 windows_core::Interface::as_raw(self),
17981 bkorigin,
17982 lrowcount,
17983 lplrowssought as _,
17984 )
17985 .ok()
17986 }
17987 }
17988 pub unsafe fn SeekRowApprox(
17989 &self,
17990 ulnumerator: u32,
17991 uldenominator: u32,
17992 ) -> windows_core::Result<()> {
17993 unsafe {
17994 (windows_core::Interface::vtable(self).SeekRowApprox)(
17995 windows_core::Interface::as_raw(self),
17996 ulnumerator,
17997 uldenominator,
17998 )
17999 .ok()
18000 }
18001 }
18002 pub unsafe fn QueryPosition(
18003 &self,
18004 lpulrow: *mut u32,
18005 lpulnumerator: *mut u32,
18006 lpuldenominator: *mut u32,
18007 ) -> windows_core::Result<()> {
18008 unsafe {
18009 (windows_core::Interface::vtable(self).QueryPosition)(
18010 windows_core::Interface::as_raw(self),
18011 lpulrow as _,
18012 lpulnumerator as _,
18013 lpuldenominator as _,
18014 )
18015 .ok()
18016 }
18017 }
18018 pub unsafe fn FindRow(
18019 &self,
18020 lprestriction: *mut SRestriction,
18021 bkorigin: usize,
18022 ulflags: u32,
18023 ) -> windows_core::Result<()> {
18024 unsafe {
18025 (windows_core::Interface::vtable(self).FindRow)(
18026 windows_core::Interface::as_raw(self),
18027 lprestriction as _,
18028 bkorigin,
18029 ulflags,
18030 )
18031 .ok()
18032 }
18033 }
18034 pub unsafe fn Restrict(
18035 &self,
18036 lprestriction: *mut SRestriction,
18037 ulflags: u32,
18038 ) -> windows_core::Result<()> {
18039 unsafe {
18040 (windows_core::Interface::vtable(self).Restrict)(
18041 windows_core::Interface::as_raw(self),
18042 lprestriction as _,
18043 ulflags,
18044 )
18045 .ok()
18046 }
18047 }
18048 pub unsafe fn CreateBookmark(&self, lpbkposition: *mut usize) -> windows_core::Result<()> {
18049 unsafe {
18050 (windows_core::Interface::vtable(self).CreateBookmark)(
18051 windows_core::Interface::as_raw(self),
18052 lpbkposition as _,
18053 )
18054 .ok()
18055 }
18056 }
18057 pub unsafe fn FreeBookmark(&self, bkposition: usize) -> windows_core::Result<()> {
18058 unsafe {
18059 (windows_core::Interface::vtable(self).FreeBookmark)(
18060 windows_core::Interface::as_raw(self),
18061 bkposition,
18062 )
18063 .ok()
18064 }
18065 }
18066 pub unsafe fn SortTable(
18067 &self,
18068 lpsortcriteria: *mut SSortOrderSet,
18069 ulflags: u32,
18070 ) -> windows_core::Result<()> {
18071 unsafe {
18072 (windows_core::Interface::vtable(self).SortTable)(
18073 windows_core::Interface::as_raw(self),
18074 lpsortcriteria as _,
18075 ulflags,
18076 )
18077 .ok()
18078 }
18079 }
18080 pub unsafe fn QuerySortOrder(
18081 &self,
18082 lppsortcriteria: *mut *mut SSortOrderSet,
18083 ) -> windows_core::Result<()> {
18084 unsafe {
18085 (windows_core::Interface::vtable(self).QuerySortOrder)(
18086 windows_core::Interface::as_raw(self),
18087 lppsortcriteria as _,
18088 )
18089 .ok()
18090 }
18091 }
18092 pub unsafe fn QueryRows(
18093 &self,
18094 lrowcount: i32,
18095 ulflags: u32,
18096 lpprows: *mut *mut SRowSet,
18097 ) -> windows_core::Result<()> {
18098 unsafe {
18099 (windows_core::Interface::vtable(self).QueryRows)(
18100 windows_core::Interface::as_raw(self),
18101 lrowcount,
18102 ulflags,
18103 lpprows as _,
18104 )
18105 .ok()
18106 }
18107 }
18108 pub unsafe fn Abort(&self) -> windows_core::Result<()> {
18109 unsafe {
18110 (windows_core::Interface::vtable(self).Abort)(windows_core::Interface::as_raw(self))
18111 .ok()
18112 }
18113 }
18114 pub unsafe fn ExpandRow(
18115 &self,
18116 cbinstancekey: u32,
18117 pbinstancekey: *mut u8,
18118 ulrowcount: u32,
18119 ulflags: u32,
18120 lpprows: *mut *mut SRowSet,
18121 lpulmorerows: *mut u32,
18122 ) -> windows_core::Result<()> {
18123 unsafe {
18124 (windows_core::Interface::vtable(self).ExpandRow)(
18125 windows_core::Interface::as_raw(self),
18126 cbinstancekey,
18127 pbinstancekey as _,
18128 ulrowcount,
18129 ulflags,
18130 lpprows as _,
18131 lpulmorerows as _,
18132 )
18133 .ok()
18134 }
18135 }
18136 pub unsafe fn CollapseRow(
18137 &self,
18138 cbinstancekey: u32,
18139 pbinstancekey: *mut u8,
18140 ulflags: u32,
18141 lpulrowcount: *mut u32,
18142 ) -> windows_core::Result<()> {
18143 unsafe {
18144 (windows_core::Interface::vtable(self).CollapseRow)(
18145 windows_core::Interface::as_raw(self),
18146 cbinstancekey,
18147 pbinstancekey as _,
18148 ulflags,
18149 lpulrowcount as _,
18150 )
18151 .ok()
18152 }
18153 }
18154 pub unsafe fn WaitForCompletion(
18155 &self,
18156 ulflags: u32,
18157 ultimeout: u32,
18158 lpultablestatus: *mut u32,
18159 ) -> windows_core::Result<()> {
18160 unsafe {
18161 (windows_core::Interface::vtable(self).WaitForCompletion)(
18162 windows_core::Interface::as_raw(self),
18163 ulflags,
18164 ultimeout,
18165 lpultablestatus as _,
18166 )
18167 .ok()
18168 }
18169 }
18170 pub unsafe fn GetCollapseState(
18171 &self,
18172 ulflags: u32,
18173 cbinstancekey: u32,
18174 lpbinstancekey: *mut u8,
18175 lpcbcollapsestate: *mut u32,
18176 lppbcollapsestate: *mut *mut u8,
18177 ) -> windows_core::Result<()> {
18178 unsafe {
18179 (windows_core::Interface::vtable(self).GetCollapseState)(
18180 windows_core::Interface::as_raw(self),
18181 ulflags,
18182 cbinstancekey,
18183 lpbinstancekey as _,
18184 lpcbcollapsestate as _,
18185 lppbcollapsestate as _,
18186 )
18187 .ok()
18188 }
18189 }
18190 pub unsafe fn SetCollapseState(
18191 &self,
18192 ulflags: u32,
18193 pbcollapsestate: &mut [u8],
18194 lpbklocation: *mut usize,
18195 ) -> windows_core::Result<()> {
18196 unsafe {
18197 (windows_core::Interface::vtable(self).SetCollapseState)(
18198 windows_core::Interface::as_raw(self),
18199 ulflags,
18200 pbcollapsestate.len().try_into().unwrap(),
18201 core::mem::transmute(pbcollapsestate.as_ptr()),
18202 lpbklocation as _,
18203 )
18204 .ok()
18205 }
18206 }
18207}
18208#[repr(C)]
18209pub struct IMAPITable_Vtbl {
18210 pub base__: windows_core::IUnknown_Vtbl,
18211 pub GetLastError: unsafe extern "system" fn(
18212 *mut core::ffi::c_void,
18213 windows_core::HRESULT,
18214 u32,
18215 *mut *mut MAPIERROR,
18216 ) -> windows_core::HRESULT,
18217 pub Advise: unsafe extern "system" fn(
18218 *mut core::ffi::c_void,
18219 u32,
18220 *mut core::ffi::c_void,
18221 *mut usize,
18222 ) -> windows_core::HRESULT,
18223 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
18224 pub GetStatus: unsafe extern "system" fn(
18225 *mut core::ffi::c_void,
18226 *mut u32,
18227 *mut u32,
18228 ) -> windows_core::HRESULT,
18229 pub SetColumns: unsafe extern "system" fn(
18230 *mut core::ffi::c_void,
18231 *mut SPropTagArray,
18232 u32,
18233 ) -> windows_core::HRESULT,
18234 pub QueryColumns: unsafe extern "system" fn(
18235 *mut core::ffi::c_void,
18236 u32,
18237 *mut *mut SPropTagArray,
18238 ) -> windows_core::HRESULT,
18239 pub GetRowCount:
18240 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
18241 pub SeekRow: unsafe extern "system" fn(
18242 *mut core::ffi::c_void,
18243 usize,
18244 i32,
18245 *mut i32,
18246 ) -> windows_core::HRESULT,
18247 pub SeekRowApprox:
18248 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
18249 pub QueryPosition: unsafe extern "system" fn(
18250 *mut core::ffi::c_void,
18251 *mut u32,
18252 *mut u32,
18253 *mut u32,
18254 ) -> windows_core::HRESULT,
18255 pub FindRow: unsafe extern "system" fn(
18256 *mut core::ffi::c_void,
18257 *mut SRestriction,
18258 usize,
18259 u32,
18260 ) -> windows_core::HRESULT,
18261 pub Restrict: unsafe extern "system" fn(
18262 *mut core::ffi::c_void,
18263 *mut SRestriction,
18264 u32,
18265 ) -> windows_core::HRESULT,
18266 pub CreateBookmark:
18267 unsafe extern "system" fn(*mut core::ffi::c_void, *mut usize) -> windows_core::HRESULT,
18268 pub FreeBookmark:
18269 unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
18270 pub SortTable: unsafe extern "system" fn(
18271 *mut core::ffi::c_void,
18272 *mut SSortOrderSet,
18273 u32,
18274 ) -> windows_core::HRESULT,
18275 pub QuerySortOrder: unsafe extern "system" fn(
18276 *mut core::ffi::c_void,
18277 *mut *mut SSortOrderSet,
18278 ) -> windows_core::HRESULT,
18279 pub QueryRows: unsafe extern "system" fn(
18280 *mut core::ffi::c_void,
18281 i32,
18282 u32,
18283 *mut *mut SRowSet,
18284 ) -> windows_core::HRESULT,
18285 pub Abort: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18286 pub ExpandRow: unsafe extern "system" fn(
18287 *mut core::ffi::c_void,
18288 u32,
18289 *mut u8,
18290 u32,
18291 u32,
18292 *mut *mut SRowSet,
18293 *mut u32,
18294 ) -> windows_core::HRESULT,
18295 pub CollapseRow: unsafe extern "system" fn(
18296 *mut core::ffi::c_void,
18297 u32,
18298 *mut u8,
18299 u32,
18300 *mut u32,
18301 ) -> windows_core::HRESULT,
18302 pub WaitForCompletion: unsafe extern "system" fn(
18303 *mut core::ffi::c_void,
18304 u32,
18305 u32,
18306 *mut u32,
18307 ) -> windows_core::HRESULT,
18308 pub GetCollapseState: unsafe extern "system" fn(
18309 *mut core::ffi::c_void,
18310 u32,
18311 u32,
18312 *mut u8,
18313 *mut u32,
18314 *mut *mut u8,
18315 ) -> windows_core::HRESULT,
18316 pub SetCollapseState: unsafe extern "system" fn(
18317 *mut core::ffi::c_void,
18318 u32,
18319 u32,
18320 *mut u8,
18321 *mut usize,
18322 ) -> windows_core::HRESULT,
18323}
18324pub trait IMAPITable_Impl: windows_core::IUnknownImpl {
18325 fn GetLastError(
18326 &self,
18327 hresult: windows_core::HRESULT,
18328 ulflags: u32,
18329 lppmapierror: *mut *mut MAPIERROR,
18330 ) -> windows_core::Result<()>;
18331 fn Advise(
18332 &self,
18333 uleventmask: u32,
18334 lpadvisesink: windows_core::Ref<'_, IMAPIAdviseSink>,
18335 lpulconnection: *mut usize,
18336 ) -> windows_core::Result<()>;
18337 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
18338 fn GetStatus(
18339 &self,
18340 lpultablestatus: *mut u32,
18341 lpultabletype: *mut u32,
18342 ) -> windows_core::Result<()>;
18343 fn SetColumns(
18344 &self,
18345 lpproptagarray: *mut SPropTagArray,
18346 ulflags: u32,
18347 ) -> windows_core::Result<()>;
18348 fn QueryColumns(
18349 &self,
18350 ulflags: u32,
18351 lpproptagarray: *mut *mut SPropTagArray,
18352 ) -> windows_core::Result<()>;
18353 fn GetRowCount(&self, ulflags: u32, lpulcount: *mut u32) -> windows_core::Result<()>;
18354 fn SeekRow(
18355 &self,
18356 bkorigin: usize,
18357 lrowcount: i32,
18358 lplrowssought: *mut i32,
18359 ) -> windows_core::Result<()>;
18360 fn SeekRowApprox(&self, ulnumerator: u32, uldenominator: u32) -> windows_core::Result<()>;
18361 fn QueryPosition(
18362 &self,
18363 lpulrow: *mut u32,
18364 lpulnumerator: *mut u32,
18365 lpuldenominator: *mut u32,
18366 ) -> windows_core::Result<()>;
18367 fn FindRow(
18368 &self,
18369 lprestriction: *mut SRestriction,
18370 bkorigin: usize,
18371 ulflags: u32,
18372 ) -> windows_core::Result<()>;
18373 fn Restrict(&self, lprestriction: *mut SRestriction, ulflags: u32) -> windows_core::Result<()>;
18374 fn CreateBookmark(&self, lpbkposition: *mut usize) -> windows_core::Result<()>;
18375 fn FreeBookmark(&self, bkposition: usize) -> windows_core::Result<()>;
18376 fn SortTable(
18377 &self,
18378 lpsortcriteria: *mut SSortOrderSet,
18379 ulflags: u32,
18380 ) -> windows_core::Result<()>;
18381 fn QuerySortOrder(&self, lppsortcriteria: *mut *mut SSortOrderSet) -> windows_core::Result<()>;
18382 fn QueryRows(
18383 &self,
18384 lrowcount: i32,
18385 ulflags: u32,
18386 lpprows: *mut *mut SRowSet,
18387 ) -> windows_core::Result<()>;
18388 fn Abort(&self) -> windows_core::Result<()>;
18389 fn ExpandRow(
18390 &self,
18391 cbinstancekey: u32,
18392 pbinstancekey: *mut u8,
18393 ulrowcount: u32,
18394 ulflags: u32,
18395 lpprows: *mut *mut SRowSet,
18396 lpulmorerows: *mut u32,
18397 ) -> windows_core::Result<()>;
18398 fn CollapseRow(
18399 &self,
18400 cbinstancekey: u32,
18401 pbinstancekey: *mut u8,
18402 ulflags: u32,
18403 lpulrowcount: *mut u32,
18404 ) -> windows_core::Result<()>;
18405 fn WaitForCompletion(
18406 &self,
18407 ulflags: u32,
18408 ultimeout: u32,
18409 lpultablestatus: *mut u32,
18410 ) -> windows_core::Result<()>;
18411 fn GetCollapseState(
18412 &self,
18413 ulflags: u32,
18414 cbinstancekey: u32,
18415 lpbinstancekey: *mut u8,
18416 lpcbcollapsestate: *mut u32,
18417 lppbcollapsestate: *mut *mut u8,
18418 ) -> windows_core::Result<()>;
18419 fn SetCollapseState(
18420 &self,
18421 ulflags: u32,
18422 cbcollapsestate: u32,
18423 pbcollapsestate: *mut u8,
18424 lpbklocation: *mut usize,
18425 ) -> windows_core::Result<()>;
18426}
18427impl IMAPITable_Vtbl {
18428 pub const fn new<Identity: IMAPITable_Impl, const OFFSET: isize>() -> Self {
18429 unsafe extern "system" fn GetLastError<Identity: IMAPITable_Impl, const OFFSET: isize>(
18430 this: *mut core::ffi::c_void,
18431 hresult: windows_core::HRESULT,
18432 ulflags: u32,
18433 lppmapierror: *mut *mut MAPIERROR,
18434 ) -> windows_core::HRESULT {
18435 unsafe {
18436 let this: &Identity =
18437 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18438 IMAPITable_Impl::GetLastError(
18439 this,
18440 core::mem::transmute_copy(&hresult),
18441 core::mem::transmute_copy(&ulflags),
18442 core::mem::transmute_copy(&lppmapierror),
18443 )
18444 .into()
18445 }
18446 }
18447 unsafe extern "system" fn Advise<Identity: IMAPITable_Impl, const OFFSET: isize>(
18448 this: *mut core::ffi::c_void,
18449 uleventmask: u32,
18450 lpadvisesink: *mut core::ffi::c_void,
18451 lpulconnection: *mut usize,
18452 ) -> windows_core::HRESULT {
18453 unsafe {
18454 let this: &Identity =
18455 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18456 IMAPITable_Impl::Advise(
18457 this,
18458 core::mem::transmute_copy(&uleventmask),
18459 core::mem::transmute_copy(&lpadvisesink),
18460 core::mem::transmute_copy(&lpulconnection),
18461 )
18462 .into()
18463 }
18464 }
18465 unsafe extern "system" fn Unadvise<Identity: IMAPITable_Impl, const OFFSET: isize>(
18466 this: *mut core::ffi::c_void,
18467 ulconnection: usize,
18468 ) -> windows_core::HRESULT {
18469 unsafe {
18470 let this: &Identity =
18471 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18472 IMAPITable_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
18473 }
18474 }
18475 unsafe extern "system" fn GetStatus<Identity: IMAPITable_Impl, const OFFSET: isize>(
18476 this: *mut core::ffi::c_void,
18477 lpultablestatus: *mut u32,
18478 lpultabletype: *mut u32,
18479 ) -> windows_core::HRESULT {
18480 unsafe {
18481 let this: &Identity =
18482 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18483 IMAPITable_Impl::GetStatus(
18484 this,
18485 core::mem::transmute_copy(&lpultablestatus),
18486 core::mem::transmute_copy(&lpultabletype),
18487 )
18488 .into()
18489 }
18490 }
18491 unsafe extern "system" fn SetColumns<Identity: IMAPITable_Impl, const OFFSET: isize>(
18492 this: *mut core::ffi::c_void,
18493 lpproptagarray: *mut SPropTagArray,
18494 ulflags: u32,
18495 ) -> windows_core::HRESULT {
18496 unsafe {
18497 let this: &Identity =
18498 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18499 IMAPITable_Impl::SetColumns(
18500 this,
18501 core::mem::transmute_copy(&lpproptagarray),
18502 core::mem::transmute_copy(&ulflags),
18503 )
18504 .into()
18505 }
18506 }
18507 unsafe extern "system" fn QueryColumns<Identity: IMAPITable_Impl, const OFFSET: isize>(
18508 this: *mut core::ffi::c_void,
18509 ulflags: u32,
18510 lpproptagarray: *mut *mut SPropTagArray,
18511 ) -> windows_core::HRESULT {
18512 unsafe {
18513 let this: &Identity =
18514 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18515 IMAPITable_Impl::QueryColumns(
18516 this,
18517 core::mem::transmute_copy(&ulflags),
18518 core::mem::transmute_copy(&lpproptagarray),
18519 )
18520 .into()
18521 }
18522 }
18523 unsafe extern "system" fn GetRowCount<Identity: IMAPITable_Impl, const OFFSET: isize>(
18524 this: *mut core::ffi::c_void,
18525 ulflags: u32,
18526 lpulcount: *mut u32,
18527 ) -> windows_core::HRESULT {
18528 unsafe {
18529 let this: &Identity =
18530 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18531 IMAPITable_Impl::GetRowCount(
18532 this,
18533 core::mem::transmute_copy(&ulflags),
18534 core::mem::transmute_copy(&lpulcount),
18535 )
18536 .into()
18537 }
18538 }
18539 unsafe extern "system" fn SeekRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18540 this: *mut core::ffi::c_void,
18541 bkorigin: usize,
18542 lrowcount: i32,
18543 lplrowssought: *mut i32,
18544 ) -> windows_core::HRESULT {
18545 unsafe {
18546 let this: &Identity =
18547 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18548 IMAPITable_Impl::SeekRow(
18549 this,
18550 core::mem::transmute_copy(&bkorigin),
18551 core::mem::transmute_copy(&lrowcount),
18552 core::mem::transmute_copy(&lplrowssought),
18553 )
18554 .into()
18555 }
18556 }
18557 unsafe extern "system" fn SeekRowApprox<Identity: IMAPITable_Impl, const OFFSET: isize>(
18558 this: *mut core::ffi::c_void,
18559 ulnumerator: u32,
18560 uldenominator: u32,
18561 ) -> windows_core::HRESULT {
18562 unsafe {
18563 let this: &Identity =
18564 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18565 IMAPITable_Impl::SeekRowApprox(
18566 this,
18567 core::mem::transmute_copy(&ulnumerator),
18568 core::mem::transmute_copy(&uldenominator),
18569 )
18570 .into()
18571 }
18572 }
18573 unsafe extern "system" fn QueryPosition<Identity: IMAPITable_Impl, const OFFSET: isize>(
18574 this: *mut core::ffi::c_void,
18575 lpulrow: *mut u32,
18576 lpulnumerator: *mut u32,
18577 lpuldenominator: *mut u32,
18578 ) -> windows_core::HRESULT {
18579 unsafe {
18580 let this: &Identity =
18581 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18582 IMAPITable_Impl::QueryPosition(
18583 this,
18584 core::mem::transmute_copy(&lpulrow),
18585 core::mem::transmute_copy(&lpulnumerator),
18586 core::mem::transmute_copy(&lpuldenominator),
18587 )
18588 .into()
18589 }
18590 }
18591 unsafe extern "system" fn FindRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18592 this: *mut core::ffi::c_void,
18593 lprestriction: *mut SRestriction,
18594 bkorigin: usize,
18595 ulflags: u32,
18596 ) -> windows_core::HRESULT {
18597 unsafe {
18598 let this: &Identity =
18599 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18600 IMAPITable_Impl::FindRow(
18601 this,
18602 core::mem::transmute_copy(&lprestriction),
18603 core::mem::transmute_copy(&bkorigin),
18604 core::mem::transmute_copy(&ulflags),
18605 )
18606 .into()
18607 }
18608 }
18609 unsafe extern "system" fn Restrict<Identity: IMAPITable_Impl, const OFFSET: isize>(
18610 this: *mut core::ffi::c_void,
18611 lprestriction: *mut SRestriction,
18612 ulflags: u32,
18613 ) -> windows_core::HRESULT {
18614 unsafe {
18615 let this: &Identity =
18616 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18617 IMAPITable_Impl::Restrict(
18618 this,
18619 core::mem::transmute_copy(&lprestriction),
18620 core::mem::transmute_copy(&ulflags),
18621 )
18622 .into()
18623 }
18624 }
18625 unsafe extern "system" fn CreateBookmark<Identity: IMAPITable_Impl, const OFFSET: isize>(
18626 this: *mut core::ffi::c_void,
18627 lpbkposition: *mut usize,
18628 ) -> windows_core::HRESULT {
18629 unsafe {
18630 let this: &Identity =
18631 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18632 IMAPITable_Impl::CreateBookmark(this, core::mem::transmute_copy(&lpbkposition))
18633 .into()
18634 }
18635 }
18636 unsafe extern "system" fn FreeBookmark<Identity: IMAPITable_Impl, const OFFSET: isize>(
18637 this: *mut core::ffi::c_void,
18638 bkposition: usize,
18639 ) -> windows_core::HRESULT {
18640 unsafe {
18641 let this: &Identity =
18642 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18643 IMAPITable_Impl::FreeBookmark(this, core::mem::transmute_copy(&bkposition)).into()
18644 }
18645 }
18646 unsafe extern "system" fn SortTable<Identity: IMAPITable_Impl, const OFFSET: isize>(
18647 this: *mut core::ffi::c_void,
18648 lpsortcriteria: *mut SSortOrderSet,
18649 ulflags: u32,
18650 ) -> windows_core::HRESULT {
18651 unsafe {
18652 let this: &Identity =
18653 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18654 IMAPITable_Impl::SortTable(
18655 this,
18656 core::mem::transmute_copy(&lpsortcriteria),
18657 core::mem::transmute_copy(&ulflags),
18658 )
18659 .into()
18660 }
18661 }
18662 unsafe extern "system" fn QuerySortOrder<Identity: IMAPITable_Impl, const OFFSET: isize>(
18663 this: *mut core::ffi::c_void,
18664 lppsortcriteria: *mut *mut SSortOrderSet,
18665 ) -> windows_core::HRESULT {
18666 unsafe {
18667 let this: &Identity =
18668 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18669 IMAPITable_Impl::QuerySortOrder(this, core::mem::transmute_copy(&lppsortcriteria))
18670 .into()
18671 }
18672 }
18673 unsafe extern "system" fn QueryRows<Identity: IMAPITable_Impl, const OFFSET: isize>(
18674 this: *mut core::ffi::c_void,
18675 lrowcount: i32,
18676 ulflags: u32,
18677 lpprows: *mut *mut SRowSet,
18678 ) -> windows_core::HRESULT {
18679 unsafe {
18680 let this: &Identity =
18681 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18682 IMAPITable_Impl::QueryRows(
18683 this,
18684 core::mem::transmute_copy(&lrowcount),
18685 core::mem::transmute_copy(&ulflags),
18686 core::mem::transmute_copy(&lpprows),
18687 )
18688 .into()
18689 }
18690 }
18691 unsafe extern "system" fn Abort<Identity: IMAPITable_Impl, const OFFSET: isize>(
18692 this: *mut core::ffi::c_void,
18693 ) -> windows_core::HRESULT {
18694 unsafe {
18695 let this: &Identity =
18696 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18697 IMAPITable_Impl::Abort(this).into()
18698 }
18699 }
18700 unsafe extern "system" fn ExpandRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18701 this: *mut core::ffi::c_void,
18702 cbinstancekey: u32,
18703 pbinstancekey: *mut u8,
18704 ulrowcount: u32,
18705 ulflags: u32,
18706 lpprows: *mut *mut SRowSet,
18707 lpulmorerows: *mut u32,
18708 ) -> windows_core::HRESULT {
18709 unsafe {
18710 let this: &Identity =
18711 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18712 IMAPITable_Impl::ExpandRow(
18713 this,
18714 core::mem::transmute_copy(&cbinstancekey),
18715 core::mem::transmute_copy(&pbinstancekey),
18716 core::mem::transmute_copy(&ulrowcount),
18717 core::mem::transmute_copy(&ulflags),
18718 core::mem::transmute_copy(&lpprows),
18719 core::mem::transmute_copy(&lpulmorerows),
18720 )
18721 .into()
18722 }
18723 }
18724 unsafe extern "system" fn CollapseRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18725 this: *mut core::ffi::c_void,
18726 cbinstancekey: u32,
18727 pbinstancekey: *mut u8,
18728 ulflags: u32,
18729 lpulrowcount: *mut u32,
18730 ) -> windows_core::HRESULT {
18731 unsafe {
18732 let this: &Identity =
18733 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18734 IMAPITable_Impl::CollapseRow(
18735 this,
18736 core::mem::transmute_copy(&cbinstancekey),
18737 core::mem::transmute_copy(&pbinstancekey),
18738 core::mem::transmute_copy(&ulflags),
18739 core::mem::transmute_copy(&lpulrowcount),
18740 )
18741 .into()
18742 }
18743 }
18744 unsafe extern "system" fn WaitForCompletion<
18745 Identity: IMAPITable_Impl,
18746 const OFFSET: isize,
18747 >(
18748 this: *mut core::ffi::c_void,
18749 ulflags: u32,
18750 ultimeout: u32,
18751 lpultablestatus: *mut u32,
18752 ) -> windows_core::HRESULT {
18753 unsafe {
18754 let this: &Identity =
18755 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18756 IMAPITable_Impl::WaitForCompletion(
18757 this,
18758 core::mem::transmute_copy(&ulflags),
18759 core::mem::transmute_copy(&ultimeout),
18760 core::mem::transmute_copy(&lpultablestatus),
18761 )
18762 .into()
18763 }
18764 }
18765 unsafe extern "system" fn GetCollapseState<
18766 Identity: IMAPITable_Impl,
18767 const OFFSET: isize,
18768 >(
18769 this: *mut core::ffi::c_void,
18770 ulflags: u32,
18771 cbinstancekey: u32,
18772 lpbinstancekey: *mut u8,
18773 lpcbcollapsestate: *mut u32,
18774 lppbcollapsestate: *mut *mut u8,
18775 ) -> windows_core::HRESULT {
18776 unsafe {
18777 let this: &Identity =
18778 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18779 IMAPITable_Impl::GetCollapseState(
18780 this,
18781 core::mem::transmute_copy(&ulflags),
18782 core::mem::transmute_copy(&cbinstancekey),
18783 core::mem::transmute_copy(&lpbinstancekey),
18784 core::mem::transmute_copy(&lpcbcollapsestate),
18785 core::mem::transmute_copy(&lppbcollapsestate),
18786 )
18787 .into()
18788 }
18789 }
18790 unsafe extern "system" fn SetCollapseState<
18791 Identity: IMAPITable_Impl,
18792 const OFFSET: isize,
18793 >(
18794 this: *mut core::ffi::c_void,
18795 ulflags: u32,
18796 cbcollapsestate: u32,
18797 pbcollapsestate: *mut u8,
18798 lpbklocation: *mut usize,
18799 ) -> windows_core::HRESULT {
18800 unsafe {
18801 let this: &Identity =
18802 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18803 IMAPITable_Impl::SetCollapseState(
18804 this,
18805 core::mem::transmute_copy(&ulflags),
18806 core::mem::transmute_copy(&cbcollapsestate),
18807 core::mem::transmute_copy(&pbcollapsestate),
18808 core::mem::transmute_copy(&lpbklocation),
18809 )
18810 .into()
18811 }
18812 }
18813 Self {
18814 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18815 GetLastError: GetLastError::<Identity, OFFSET>,
18816 Advise: Advise::<Identity, OFFSET>,
18817 Unadvise: Unadvise::<Identity, OFFSET>,
18818 GetStatus: GetStatus::<Identity, OFFSET>,
18819 SetColumns: SetColumns::<Identity, OFFSET>,
18820 QueryColumns: QueryColumns::<Identity, OFFSET>,
18821 GetRowCount: GetRowCount::<Identity, OFFSET>,
18822 SeekRow: SeekRow::<Identity, OFFSET>,
18823 SeekRowApprox: SeekRowApprox::<Identity, OFFSET>,
18824 QueryPosition: QueryPosition::<Identity, OFFSET>,
18825 FindRow: FindRow::<Identity, OFFSET>,
18826 Restrict: Restrict::<Identity, OFFSET>,
18827 CreateBookmark: CreateBookmark::<Identity, OFFSET>,
18828 FreeBookmark: FreeBookmark::<Identity, OFFSET>,
18829 SortTable: SortTable::<Identity, OFFSET>,
18830 QuerySortOrder: QuerySortOrder::<Identity, OFFSET>,
18831 QueryRows: QueryRows::<Identity, OFFSET>,
18832 Abort: Abort::<Identity, OFFSET>,
18833 ExpandRow: ExpandRow::<Identity, OFFSET>,
18834 CollapseRow: CollapseRow::<Identity, OFFSET>,
18835 WaitForCompletion: WaitForCompletion::<Identity, OFFSET>,
18836 GetCollapseState: GetCollapseState::<Identity, OFFSET>,
18837 SetCollapseState: SetCollapseState::<Identity, OFFSET>,
18838 }
18839 }
18840 pub fn matches(iid: &windows_core::GUID) -> bool {
18841 iid == &<IMAPITable as windows_core::Interface>::IID
18842 }
18843}
18844impl windows_core::RuntimeName for IMAPITable {}
18845pub const IMAPITable_Abort: METHODS = METHODS(31i32);
18846pub const IMAPITable_Advise: METHODS = METHODS(15i32);
18847pub const IMAPITable_CollapseRow: METHODS = METHODS(33i32);
18848pub const IMAPITable_CreateBookmark: METHODS = METHODS(26i32);
18849pub const IMAPITable_ExpandRow: METHODS = METHODS(32i32);
18850pub const IMAPITable_FindRow: METHODS = METHODS(24i32);
18851pub const IMAPITable_FreeBookmark: METHODS = METHODS(27i32);
18852pub const IMAPITable_GetCollapseState: METHODS = METHODS(35i32);
18853pub const IMAPITable_GetLastError: METHODS = METHODS(14i32);
18854pub const IMAPITable_GetRowCount: METHODS = METHODS(20i32);
18855pub const IMAPITable_GetStatus: METHODS = METHODS(17i32);
18856pub const IMAPITable_QueryColumns: METHODS = METHODS(19i32);
18857pub const IMAPITable_QueryPosition: METHODS = METHODS(23i32);
18858pub const IMAPITable_QueryRows: METHODS = METHODS(30i32);
18859pub const IMAPITable_QuerySortOrder: METHODS = METHODS(29i32);
18860pub const IMAPITable_Restrict: METHODS = METHODS(25i32);
18861pub const IMAPITable_SeekRow: METHODS = METHODS(21i32);
18862pub const IMAPITable_SeekRowApprox: METHODS = METHODS(22i32);
18863pub const IMAPITable_SetCollapseState: METHODS = METHODS(36i32);
18864pub const IMAPITable_SetColumns: METHODS = METHODS(18i32);
18865pub const IMAPITable_SortTable: METHODS = METHODS(28i32);
18866pub const IMAPITable_Unadvise: METHODS = METHODS(16i32);
18867pub const IMAPITable_WaitForCompletion: METHODS = METHODS(34i32);
18868windows_core::imp::define_interface!(
18869 IMAPIViewAdviseSink,
18870 IMAPIViewAdviseSink_Vtbl,
18871 0x0002032b_0000_0000_c000_000000000046
18872);
18873windows_core::imp::interface_hierarchy!(IMAPIViewAdviseSink, windows_core::IUnknown);
18874impl IMAPIViewAdviseSink {
18875 pub unsafe fn OnShutdown(&self) -> windows_core::Result<()> {
18876 unsafe {
18877 (windows_core::Interface::vtable(self).OnShutdown)(windows_core::Interface::as_raw(
18878 self,
18879 ))
18880 .ok()
18881 }
18882 }
18883 pub unsafe fn OnNewMessage(&self) -> windows_core::Result<()> {
18884 unsafe {
18885 (windows_core::Interface::vtable(self).OnNewMessage)(windows_core::Interface::as_raw(
18886 self,
18887 ))
18888 .ok()
18889 }
18890 }
18891 pub unsafe fn OnPrint(
18892 &self,
18893 dwpagenumber: u32,
18894 hrstatus: windows_core::HRESULT,
18895 ) -> windows_core::Result<()> {
18896 unsafe {
18897 (windows_core::Interface::vtable(self).OnPrint)(
18898 windows_core::Interface::as_raw(self),
18899 dwpagenumber,
18900 hrstatus,
18901 )
18902 .ok()
18903 }
18904 }
18905 pub unsafe fn OnSubmitted(&self) -> windows_core::Result<()> {
18906 unsafe {
18907 (windows_core::Interface::vtable(self).OnSubmitted)(windows_core::Interface::as_raw(
18908 self,
18909 ))
18910 .ok()
18911 }
18912 }
18913 pub unsafe fn OnSaved(&self) -> windows_core::Result<()> {
18914 unsafe {
18915 (windows_core::Interface::vtable(self).OnSaved)(windows_core::Interface::as_raw(self))
18916 .ok()
18917 }
18918 }
18919}
18920#[repr(C)]
18921pub struct IMAPIViewAdviseSink_Vtbl {
18922 pub base__: windows_core::IUnknown_Vtbl,
18923 pub OnShutdown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18924 pub OnNewMessage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18925 pub OnPrint: unsafe extern "system" fn(
18926 *mut core::ffi::c_void,
18927 u32,
18928 windows_core::HRESULT,
18929 ) -> windows_core::HRESULT,
18930 pub OnSubmitted: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18931 pub OnSaved: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18932}
18933pub trait IMAPIViewAdviseSink_Impl: windows_core::IUnknownImpl {
18934 fn OnShutdown(&self) -> windows_core::Result<()>;
18935 fn OnNewMessage(&self) -> windows_core::Result<()>;
18936 fn OnPrint(
18937 &self,
18938 dwpagenumber: u32,
18939 hrstatus: windows_core::HRESULT,
18940 ) -> windows_core::Result<()>;
18941 fn OnSubmitted(&self) -> windows_core::Result<()>;
18942 fn OnSaved(&self) -> windows_core::Result<()>;
18943}
18944impl IMAPIViewAdviseSink_Vtbl {
18945 pub const fn new<Identity: IMAPIViewAdviseSink_Impl, const OFFSET: isize>() -> Self {
18946 unsafe extern "system" fn OnShutdown<
18947 Identity: IMAPIViewAdviseSink_Impl,
18948 const OFFSET: isize,
18949 >(
18950 this: *mut core::ffi::c_void,
18951 ) -> windows_core::HRESULT {
18952 unsafe {
18953 let this: &Identity =
18954 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18955 IMAPIViewAdviseSink_Impl::OnShutdown(this).into()
18956 }
18957 }
18958 unsafe extern "system" fn OnNewMessage<
18959 Identity: IMAPIViewAdviseSink_Impl,
18960 const OFFSET: isize,
18961 >(
18962 this: *mut core::ffi::c_void,
18963 ) -> windows_core::HRESULT {
18964 unsafe {
18965 let this: &Identity =
18966 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18967 IMAPIViewAdviseSink_Impl::OnNewMessage(this).into()
18968 }
18969 }
18970 unsafe extern "system" fn OnPrint<
18971 Identity: IMAPIViewAdviseSink_Impl,
18972 const OFFSET: isize,
18973 >(
18974 this: *mut core::ffi::c_void,
18975 dwpagenumber: u32,
18976 hrstatus: windows_core::HRESULT,
18977 ) -> windows_core::HRESULT {
18978 unsafe {
18979 let this: &Identity =
18980 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18981 IMAPIViewAdviseSink_Impl::OnPrint(
18982 this,
18983 core::mem::transmute_copy(&dwpagenumber),
18984 core::mem::transmute_copy(&hrstatus),
18985 )
18986 .into()
18987 }
18988 }
18989 unsafe extern "system" fn OnSubmitted<
18990 Identity: IMAPIViewAdviseSink_Impl,
18991 const OFFSET: isize,
18992 >(
18993 this: *mut core::ffi::c_void,
18994 ) -> windows_core::HRESULT {
18995 unsafe {
18996 let this: &Identity =
18997 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18998 IMAPIViewAdviseSink_Impl::OnSubmitted(this).into()
18999 }
19000 }
19001 unsafe extern "system" fn OnSaved<
19002 Identity: IMAPIViewAdviseSink_Impl,
19003 const OFFSET: isize,
19004 >(
19005 this: *mut core::ffi::c_void,
19006 ) -> windows_core::HRESULT {
19007 unsafe {
19008 let this: &Identity =
19009 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19010 IMAPIViewAdviseSink_Impl::OnSaved(this).into()
19011 }
19012 }
19013 Self {
19014 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19015 OnShutdown: OnShutdown::<Identity, OFFSET>,
19016 OnNewMessage: OnNewMessage::<Identity, OFFSET>,
19017 OnPrint: OnPrint::<Identity, OFFSET>,
19018 OnSubmitted: OnSubmitted::<Identity, OFFSET>,
19019 OnSaved: OnSaved::<Identity, OFFSET>,
19020 }
19021 }
19022 pub fn matches(iid: &windows_core::GUID) -> bool {
19023 iid == &<IMAPIViewAdviseSink as windows_core::Interface>::IID
19024 }
19025}
19026impl windows_core::RuntimeName for IMAPIViewAdviseSink {}
19027windows_core::imp::define_interface!(
19028 IMAPIViewContext,
19029 IMAPIViewContext_Vtbl,
19030 0x00020321_0000_0000_c000_000000000046
19031);
19032windows_core::imp::interface_hierarchy!(IMAPIViewContext, windows_core::IUnknown);
19033impl IMAPIViewContext {
19034 pub unsafe fn GetLastError(
19035 &self,
19036 hresult: windows_core::HRESULT,
19037 ulflags: u32,
19038 lppmapierror: *mut *mut MAPIERROR,
19039 ) -> windows_core::Result<()> {
19040 unsafe {
19041 (windows_core::Interface::vtable(self).GetLastError)(
19042 windows_core::Interface::as_raw(self),
19043 hresult,
19044 ulflags,
19045 lppmapierror as _,
19046 )
19047 .ok()
19048 }
19049 }
19050 pub unsafe fn SetAdviseSink<P0>(&self, pmvns: P0) -> windows_core::Result<()>
19051 where
19052 P0: windows_core::Param<IMAPIFormAdviseSink>,
19053 {
19054 unsafe {
19055 (windows_core::Interface::vtable(self).SetAdviseSink)(
19056 windows_core::Interface::as_raw(self),
19057 pmvns.param().abi(),
19058 )
19059 .ok()
19060 }
19061 }
19062 pub unsafe fn ActivateNext(
19063 &self,
19064 uldir: u32,
19065 prcposrect: *mut windows::Win32::Foundation::RECT,
19066 ) -> windows_core::Result<()> {
19067 unsafe {
19068 (windows_core::Interface::vtable(self).ActivateNext)(
19069 windows_core::Interface::as_raw(self),
19070 uldir,
19071 prcposrect as _,
19072 )
19073 .ok()
19074 }
19075 }
19076 pub unsafe fn GetPrintSetup(
19077 &self,
19078 ulflags: u32,
19079 lppformprintsetup: *mut *mut FORMPRINTSETUP,
19080 ) -> windows_core::Result<()> {
19081 unsafe {
19082 (windows_core::Interface::vtable(self).GetPrintSetup)(
19083 windows_core::Interface::as_raw(self),
19084 ulflags,
19085 lppformprintsetup as _,
19086 )
19087 .ok()
19088 }
19089 }
19090 pub unsafe fn GetSaveStream(
19091 &self,
19092 pulflags: *mut u32,
19093 pulformat: *mut u32,
19094 ppstm: *mut Option<windows::Win32::System::Com::IStream>,
19095 ) -> windows_core::Result<()> {
19096 unsafe {
19097 (windows_core::Interface::vtable(self).GetSaveStream)(
19098 windows_core::Interface::as_raw(self),
19099 pulflags as _,
19100 pulformat as _,
19101 core::mem::transmute(ppstm),
19102 )
19103 .ok()
19104 }
19105 }
19106 pub unsafe fn GetViewStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()> {
19107 unsafe {
19108 (windows_core::Interface::vtable(self).GetViewStatus)(
19109 windows_core::Interface::as_raw(self),
19110 lpulstatus as _,
19111 )
19112 .ok()
19113 }
19114 }
19115}
19116#[repr(C)]
19117pub struct IMAPIViewContext_Vtbl {
19118 pub base__: windows_core::IUnknown_Vtbl,
19119 pub GetLastError: unsafe extern "system" fn(
19120 *mut core::ffi::c_void,
19121 windows_core::HRESULT,
19122 u32,
19123 *mut *mut MAPIERROR,
19124 ) -> windows_core::HRESULT,
19125 pub SetAdviseSink: unsafe extern "system" fn(
19126 *mut core::ffi::c_void,
19127 *mut core::ffi::c_void,
19128 ) -> windows_core::HRESULT,
19129 pub ActivateNext: unsafe extern "system" fn(
19130 *mut core::ffi::c_void,
19131 u32,
19132 *mut windows::Win32::Foundation::RECT,
19133 ) -> windows_core::HRESULT,
19134 pub GetPrintSetup: unsafe extern "system" fn(
19135 *mut core::ffi::c_void,
19136 u32,
19137 *mut *mut FORMPRINTSETUP,
19138 ) -> windows_core::HRESULT,
19139 pub GetSaveStream: unsafe extern "system" fn(
19140 *mut core::ffi::c_void,
19141 *mut u32,
19142 *mut u32,
19143 *mut *mut core::ffi::c_void,
19144 ) -> windows_core::HRESULT,
19145 pub GetViewStatus:
19146 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
19147}
19148pub trait IMAPIViewContext_Impl: windows_core::IUnknownImpl {
19149 fn GetLastError(
19150 &self,
19151 hresult: windows_core::HRESULT,
19152 ulflags: u32,
19153 lppmapierror: *mut *mut MAPIERROR,
19154 ) -> windows_core::Result<()>;
19155 fn SetAdviseSink(
19156 &self,
19157 pmvns: windows_core::Ref<'_, IMAPIFormAdviseSink>,
19158 ) -> windows_core::Result<()>;
19159 fn ActivateNext(
19160 &self,
19161 uldir: u32,
19162 prcposrect: *mut windows::Win32::Foundation::RECT,
19163 ) -> windows_core::Result<()>;
19164 fn GetPrintSetup(
19165 &self,
19166 ulflags: u32,
19167 lppformprintsetup: *mut *mut FORMPRINTSETUP,
19168 ) -> windows_core::Result<()>;
19169 fn GetSaveStream(
19170 &self,
19171 pulflags: *mut u32,
19172 pulformat: *mut u32,
19173 ppstm: windows_core::OutRef<'_, windows::Win32::System::Com::IStream>,
19174 ) -> windows_core::Result<()>;
19175 fn GetViewStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()>;
19176}
19177impl IMAPIViewContext_Vtbl {
19178 pub const fn new<Identity: IMAPIViewContext_Impl, const OFFSET: isize>() -> Self {
19179 unsafe extern "system" fn GetLastError<
19180 Identity: IMAPIViewContext_Impl,
19181 const OFFSET: isize,
19182 >(
19183 this: *mut core::ffi::c_void,
19184 hresult: windows_core::HRESULT,
19185 ulflags: u32,
19186 lppmapierror: *mut *mut MAPIERROR,
19187 ) -> windows_core::HRESULT {
19188 unsafe {
19189 let this: &Identity =
19190 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19191 IMAPIViewContext_Impl::GetLastError(
19192 this,
19193 core::mem::transmute_copy(&hresult),
19194 core::mem::transmute_copy(&ulflags),
19195 core::mem::transmute_copy(&lppmapierror),
19196 )
19197 .into()
19198 }
19199 }
19200 unsafe extern "system" fn SetAdviseSink<
19201 Identity: IMAPIViewContext_Impl,
19202 const OFFSET: isize,
19203 >(
19204 this: *mut core::ffi::c_void,
19205 pmvns: *mut core::ffi::c_void,
19206 ) -> windows_core::HRESULT {
19207 unsafe {
19208 let this: &Identity =
19209 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19210 IMAPIViewContext_Impl::SetAdviseSink(this, core::mem::transmute_copy(&pmvns)).into()
19211 }
19212 }
19213 unsafe extern "system" fn ActivateNext<
19214 Identity: IMAPIViewContext_Impl,
19215 const OFFSET: isize,
19216 >(
19217 this: *mut core::ffi::c_void,
19218 uldir: u32,
19219 prcposrect: *mut windows::Win32::Foundation::RECT,
19220 ) -> windows_core::HRESULT {
19221 unsafe {
19222 let this: &Identity =
19223 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19224 IMAPIViewContext_Impl::ActivateNext(
19225 this,
19226 core::mem::transmute_copy(&uldir),
19227 core::mem::transmute_copy(&prcposrect),
19228 )
19229 .into()
19230 }
19231 }
19232 unsafe extern "system" fn GetPrintSetup<
19233 Identity: IMAPIViewContext_Impl,
19234 const OFFSET: isize,
19235 >(
19236 this: *mut core::ffi::c_void,
19237 ulflags: u32,
19238 lppformprintsetup: *mut *mut FORMPRINTSETUP,
19239 ) -> windows_core::HRESULT {
19240 unsafe {
19241 let this: &Identity =
19242 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19243 IMAPIViewContext_Impl::GetPrintSetup(
19244 this,
19245 core::mem::transmute_copy(&ulflags),
19246 core::mem::transmute_copy(&lppformprintsetup),
19247 )
19248 .into()
19249 }
19250 }
19251 unsafe extern "system" fn GetSaveStream<
19252 Identity: IMAPIViewContext_Impl,
19253 const OFFSET: isize,
19254 >(
19255 this: *mut core::ffi::c_void,
19256 pulflags: *mut u32,
19257 pulformat: *mut u32,
19258 ppstm: *mut *mut core::ffi::c_void,
19259 ) -> windows_core::HRESULT {
19260 unsafe {
19261 let this: &Identity =
19262 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19263 IMAPIViewContext_Impl::GetSaveStream(
19264 this,
19265 core::mem::transmute_copy(&pulflags),
19266 core::mem::transmute_copy(&pulformat),
19267 core::mem::transmute_copy(&ppstm),
19268 )
19269 .into()
19270 }
19271 }
19272 unsafe extern "system" fn GetViewStatus<
19273 Identity: IMAPIViewContext_Impl,
19274 const OFFSET: isize,
19275 >(
19276 this: *mut core::ffi::c_void,
19277 lpulstatus: *mut u32,
19278 ) -> windows_core::HRESULT {
19279 unsafe {
19280 let this: &Identity =
19281 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19282 IMAPIViewContext_Impl::GetViewStatus(this, core::mem::transmute_copy(&lpulstatus))
19283 .into()
19284 }
19285 }
19286 Self {
19287 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19288 GetLastError: GetLastError::<Identity, OFFSET>,
19289 SetAdviseSink: SetAdviseSink::<Identity, OFFSET>,
19290 ActivateNext: ActivateNext::<Identity, OFFSET>,
19291 GetPrintSetup: GetPrintSetup::<Identity, OFFSET>,
19292 GetSaveStream: GetSaveStream::<Identity, OFFSET>,
19293 GetViewStatus: GetViewStatus::<Identity, OFFSET>,
19294 }
19295 }
19296 pub fn matches(iid: &windows_core::GUID) -> bool {
19297 iid == &<IMAPIViewContext as windows_core::Interface>::IID
19298 }
19299}
19300impl windows_core::RuntimeName for IMAPIViewContext {}
19301pub const IMF_ATTACHMENTS: IMSGFLAGS = IMSGFLAGS(1i32);
19302pub const IMF_CSETTAGGED: IMSGFLAGS = IMSGFLAGS(8192i32);
19303pub const IMF_ENCRYPTED: IMSGFLAGS = IMSGFLAGS(256i32);
19304pub const IMF_HASVCARD: IMSGFLAGS = IMSGFLAGS(65536i32);
19305pub const IMF_HTML: IMSGFLAGS = IMSGFLAGS(16i32);
19306pub const IMF_MHTML: IMSGFLAGS = IMSGFLAGS(1024i32);
19307pub const IMF_MIME: IMSGFLAGS = IMSGFLAGS(8i32);
19308pub const IMF_MULTIPART: IMSGFLAGS = IMSGFLAGS(2i32);
19309pub const IMF_NEWS: IMSGFLAGS = IMSGFLAGS(16384i32);
19310pub const IMF_PARTIAL: IMSGFLAGS = IMSGFLAGS(64i32);
19311pub const IMF_PLAIN: IMSGFLAGS = IMSGFLAGS(32i32);
19312pub const IMF_RFC1154: IMSGFLAGS = IMSGFLAGS(131072i32);
19313pub const IMF_SECURE: IMSGFLAGS = IMSGFLAGS(2048i32);
19314pub const IMF_SIGNED: IMSGFLAGS = IMSGFLAGS(128i32);
19315pub const IMF_SUBMULTIPART: IMSGFLAGS = IMSGFLAGS(4i32);
19316pub const IMF_TEXT: IMSGFLAGS = IMSGFLAGS(4096i32);
19317pub const IMF_TNEF: IMSGFLAGS = IMSGFLAGS(512i32);
19318pub const IMF_VOICEMAIL: IMSGFLAGS = IMSGFLAGS(32768i32);
19319pub const IMPORTANCE_HIGH: u32 = 2u32;
19320pub const IMPORTANCE_LOW: u32 = 0u32;
19321pub const IMPORTANCE_NORMAL: u32 = 1u32;
19322windows_core::imp::define_interface!(
19323 IMSCapabilities,
19324 IMSCapabilities_Vtbl,
19325 0x00020393_0000_0000_c000_000000000046
19326);
19327windows_core::imp::interface_hierarchy!(IMSCapabilities, windows_core::IUnknown);
19328impl IMSCapabilities {
19329 pub unsafe fn GetCapabilities(&self, mscapselector: MSCAP_SELECTOR) -> u32 {
19330 unsafe {
19331 (windows_core::Interface::vtable(self).GetCapabilities)(
19332 windows_core::Interface::as_raw(self),
19333 mscapselector,
19334 )
19335 }
19336 }
19337}
19338#[repr(C)]
19339pub struct IMSCapabilities_Vtbl {
19340 pub base__: windows_core::IUnknown_Vtbl,
19341 pub GetCapabilities: unsafe extern "system" fn(*mut core::ffi::c_void, MSCAP_SELECTOR) -> u32,
19342}
19343pub trait IMSCapabilities_Impl: windows_core::IUnknownImpl {
19344 fn GetCapabilities(&self, mscapselector: MSCAP_SELECTOR) -> u32;
19345}
19346impl IMSCapabilities_Vtbl {
19347 pub const fn new<Identity: IMSCapabilities_Impl, const OFFSET: isize>() -> Self {
19348 unsafe extern "system" fn GetCapabilities<
19349 Identity: IMSCapabilities_Impl,
19350 const OFFSET: isize,
19351 >(
19352 this: *mut core::ffi::c_void,
19353 mscapselector: MSCAP_SELECTOR,
19354 ) -> u32 {
19355 unsafe {
19356 let this: &Identity =
19357 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19358 IMSCapabilities_Impl::GetCapabilities(
19359 this,
19360 core::mem::transmute_copy(&mscapselector),
19361 )
19362 }
19363 }
19364 Self {
19365 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19366 GetCapabilities: GetCapabilities::<Identity, OFFSET>,
19367 }
19368 }
19369 pub fn matches(iid: &windows_core::GUID) -> bool {
19370 iid == &<IMSCapabilities as windows_core::Interface>::IID
19371 }
19372}
19373impl windows_core::RuntimeName for IMSCapabilities {}
19374#[repr(transparent)]
19375#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
19376pub struct IMSGBODYTYPE(pub i32);
19377#[repr(transparent)]
19378#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
19379pub struct IMSGFLAGS(pub i32);
19380#[repr(transparent)]
19381#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
19382pub struct IMSGPRIORITY(pub i32);
19383pub const IMSG_NO_ISTG_COMMIT: u32 = 1u32;
19384pub const IMSG_PRI_HIGH: IMSGPRIORITY = IMSGPRIORITY(1i32);
19385pub const IMSG_PRI_LOW: IMSGPRIORITY = IMSGPRIORITY(5i32);
19386pub const IMSG_PRI_NORMAL: IMSGPRIORITY = IMSGPRIORITY(3i32);
19387windows_core::imp::define_interface!(
19388 IMSLogon,
19389 IMSLogon_Vtbl,
19390 0x00020313_0000_0000_c000_000000000046
19391);
19392windows_core::imp::interface_hierarchy!(IMSLogon, windows_core::IUnknown);
19393impl IMSLogon {
19394 pub unsafe fn GetLastError(
19395 &self,
19396 hresult: windows_core::HRESULT,
19397 ulflags: u32,
19398 lppmapierror: *mut *mut MAPIERROR,
19399 ) -> windows_core::Result<()> {
19400 unsafe {
19401 (windows_core::Interface::vtable(self).GetLastError)(
19402 windows_core::Interface::as_raw(self),
19403 hresult,
19404 ulflags,
19405 lppmapierror as _,
19406 )
19407 .ok()
19408 }
19409 }
19410 pub unsafe fn Logoff(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
19411 unsafe {
19412 (windows_core::Interface::vtable(self).Logoff)(
19413 windows_core::Interface::as_raw(self),
19414 lpulflags as _,
19415 )
19416 .ok()
19417 }
19418 }
19419 pub unsafe fn OpenEntry(
19420 &self,
19421 cbentryid: u32,
19422 lpentryid: *mut ENTRYID,
19423 lpinterface: *mut windows_core::GUID,
19424 ulflags: u32,
19425 lpulobjtype: *mut u32,
19426 lppunk: *mut Option<windows_core::IUnknown>,
19427 ) -> windows_core::Result<()> {
19428 unsafe {
19429 (windows_core::Interface::vtable(self).OpenEntry)(
19430 windows_core::Interface::as_raw(self),
19431 cbentryid,
19432 lpentryid as _,
19433 lpinterface as _,
19434 ulflags,
19435 lpulobjtype as _,
19436 core::mem::transmute(lppunk),
19437 )
19438 .ok()
19439 }
19440 }
19441 pub unsafe fn CompareEntryIDs(
19442 &self,
19443 cbentryid1: u32,
19444 lpentryid1: *mut ENTRYID,
19445 cbentryid2: u32,
19446 lpentryid2: *mut ENTRYID,
19447 ulflags: u32,
19448 lpulresult: *mut u32,
19449 ) -> windows_core::Result<()> {
19450 unsafe {
19451 (windows_core::Interface::vtable(self).CompareEntryIDs)(
19452 windows_core::Interface::as_raw(self),
19453 cbentryid1,
19454 lpentryid1 as _,
19455 cbentryid2,
19456 lpentryid2 as _,
19457 ulflags,
19458 lpulresult as _,
19459 )
19460 .ok()
19461 }
19462 }
19463 pub unsafe fn Advise<P3>(
19464 &self,
19465 cbentryid: u32,
19466 lpentryid: *mut ENTRYID,
19467 uleventmask: u32,
19468 lpadvisesink: P3,
19469 lpulconnection: *mut usize,
19470 ) -> windows_core::Result<()>
19471 where
19472 P3: windows_core::Param<IMAPIAdviseSink>,
19473 {
19474 unsafe {
19475 (windows_core::Interface::vtable(self).Advise)(
19476 windows_core::Interface::as_raw(self),
19477 cbentryid,
19478 lpentryid as _,
19479 uleventmask,
19480 lpadvisesink.param().abi(),
19481 lpulconnection as _,
19482 )
19483 .ok()
19484 }
19485 }
19486 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
19487 unsafe {
19488 (windows_core::Interface::vtable(self).Unadvise)(
19489 windows_core::Interface::as_raw(self),
19490 ulconnection,
19491 )
19492 .ok()
19493 }
19494 }
19495 pub unsafe fn OpenStatusEntry(
19496 &self,
19497 lpinterface: *mut windows_core::GUID,
19498 ulflags: u32,
19499 lpulobjtype: *mut u32,
19500 lppentry: *mut *mut core::ffi::c_void,
19501 ) -> windows_core::Result<()> {
19502 unsafe {
19503 (windows_core::Interface::vtable(self).OpenStatusEntry)(
19504 windows_core::Interface::as_raw(self),
19505 lpinterface as _,
19506 ulflags,
19507 lpulobjtype as _,
19508 lppentry as _,
19509 )
19510 .ok()
19511 }
19512 }
19513}
19514#[repr(C)]
19515pub struct IMSLogon_Vtbl {
19516 pub base__: windows_core::IUnknown_Vtbl,
19517 pub GetLastError: unsafe extern "system" fn(
19518 *mut core::ffi::c_void,
19519 windows_core::HRESULT,
19520 u32,
19521 *mut *mut MAPIERROR,
19522 ) -> windows_core::HRESULT,
19523 pub Logoff:
19524 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
19525 pub OpenEntry: unsafe extern "system" fn(
19526 *mut core::ffi::c_void,
19527 u32,
19528 *mut ENTRYID,
19529 *mut windows_core::GUID,
19530 u32,
19531 *mut u32,
19532 *mut *mut core::ffi::c_void,
19533 ) -> windows_core::HRESULT,
19534 pub CompareEntryIDs: unsafe extern "system" fn(
19535 *mut core::ffi::c_void,
19536 u32,
19537 *mut ENTRYID,
19538 u32,
19539 *mut ENTRYID,
19540 u32,
19541 *mut u32,
19542 ) -> windows_core::HRESULT,
19543 pub Advise: unsafe extern "system" fn(
19544 *mut core::ffi::c_void,
19545 u32,
19546 *mut ENTRYID,
19547 u32,
19548 *mut core::ffi::c_void,
19549 *mut usize,
19550 ) -> windows_core::HRESULT,
19551 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
19552 pub OpenStatusEntry: unsafe extern "system" fn(
19553 *mut core::ffi::c_void,
19554 *mut windows_core::GUID,
19555 u32,
19556 *mut u32,
19557 *mut *mut core::ffi::c_void,
19558 ) -> windows_core::HRESULT,
19559}
19560pub trait IMSLogon_Impl: windows_core::IUnknownImpl {
19561 fn GetLastError(
19562 &self,
19563 hresult: windows_core::HRESULT,
19564 ulflags: u32,
19565 lppmapierror: *mut *mut MAPIERROR,
19566 ) -> windows_core::Result<()>;
19567 fn Logoff(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
19568 fn OpenEntry(
19569 &self,
19570 cbentryid: u32,
19571 lpentryid: *mut ENTRYID,
19572 lpinterface: *mut windows_core::GUID,
19573 ulflags: u32,
19574 lpulobjtype: *mut u32,
19575 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
19576 ) -> windows_core::Result<()>;
19577 fn CompareEntryIDs(
19578 &self,
19579 cbentryid1: u32,
19580 lpentryid1: *mut ENTRYID,
19581 cbentryid2: u32,
19582 lpentryid2: *mut ENTRYID,
19583 ulflags: u32,
19584 lpulresult: *mut u32,
19585 ) -> windows_core::Result<()>;
19586 fn Advise(
19587 &self,
19588 cbentryid: u32,
19589 lpentryid: *mut ENTRYID,
19590 uleventmask: u32,
19591 lpadvisesink: windows_core::Ref<'_, IMAPIAdviseSink>,
19592 lpulconnection: *mut usize,
19593 ) -> windows_core::Result<()>;
19594 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
19595 fn OpenStatusEntry(
19596 &self,
19597 lpinterface: *mut windows_core::GUID,
19598 ulflags: u32,
19599 lpulobjtype: *mut u32,
19600 lppentry: *mut *mut core::ffi::c_void,
19601 ) -> windows_core::Result<()>;
19602}
19603impl IMSLogon_Vtbl {
19604 pub const fn new<Identity: IMSLogon_Impl, const OFFSET: isize>() -> Self {
19605 unsafe extern "system" fn GetLastError<Identity: IMSLogon_Impl, const OFFSET: isize>(
19606 this: *mut core::ffi::c_void,
19607 hresult: windows_core::HRESULT,
19608 ulflags: u32,
19609 lppmapierror: *mut *mut MAPIERROR,
19610 ) -> windows_core::HRESULT {
19611 unsafe {
19612 let this: &Identity =
19613 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19614 IMSLogon_Impl::GetLastError(
19615 this,
19616 core::mem::transmute_copy(&hresult),
19617 core::mem::transmute_copy(&ulflags),
19618 core::mem::transmute_copy(&lppmapierror),
19619 )
19620 .into()
19621 }
19622 }
19623 unsafe extern "system" fn Logoff<Identity: IMSLogon_Impl, const OFFSET: isize>(
19624 this: *mut core::ffi::c_void,
19625 lpulflags: *mut u32,
19626 ) -> windows_core::HRESULT {
19627 unsafe {
19628 let this: &Identity =
19629 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19630 IMSLogon_Impl::Logoff(this, core::mem::transmute_copy(&lpulflags)).into()
19631 }
19632 }
19633 unsafe extern "system" fn OpenEntry<Identity: IMSLogon_Impl, const OFFSET: isize>(
19634 this: *mut core::ffi::c_void,
19635 cbentryid: u32,
19636 lpentryid: *mut ENTRYID,
19637 lpinterface: *mut windows_core::GUID,
19638 ulflags: u32,
19639 lpulobjtype: *mut u32,
19640 lppunk: *mut *mut core::ffi::c_void,
19641 ) -> windows_core::HRESULT {
19642 unsafe {
19643 let this: &Identity =
19644 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19645 IMSLogon_Impl::OpenEntry(
19646 this,
19647 core::mem::transmute_copy(&cbentryid),
19648 core::mem::transmute_copy(&lpentryid),
19649 core::mem::transmute_copy(&lpinterface),
19650 core::mem::transmute_copy(&ulflags),
19651 core::mem::transmute_copy(&lpulobjtype),
19652 core::mem::transmute_copy(&lppunk),
19653 )
19654 .into()
19655 }
19656 }
19657 unsafe extern "system" fn CompareEntryIDs<Identity: IMSLogon_Impl, const OFFSET: isize>(
19658 this: *mut core::ffi::c_void,
19659 cbentryid1: u32,
19660 lpentryid1: *mut ENTRYID,
19661 cbentryid2: u32,
19662 lpentryid2: *mut ENTRYID,
19663 ulflags: u32,
19664 lpulresult: *mut u32,
19665 ) -> windows_core::HRESULT {
19666 unsafe {
19667 let this: &Identity =
19668 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19669 IMSLogon_Impl::CompareEntryIDs(
19670 this,
19671 core::mem::transmute_copy(&cbentryid1),
19672 core::mem::transmute_copy(&lpentryid1),
19673 core::mem::transmute_copy(&cbentryid2),
19674 core::mem::transmute_copy(&lpentryid2),
19675 core::mem::transmute_copy(&ulflags),
19676 core::mem::transmute_copy(&lpulresult),
19677 )
19678 .into()
19679 }
19680 }
19681 unsafe extern "system" fn Advise<Identity: IMSLogon_Impl, const OFFSET: isize>(
19682 this: *mut core::ffi::c_void,
19683 cbentryid: u32,
19684 lpentryid: *mut ENTRYID,
19685 uleventmask: u32,
19686 lpadvisesink: *mut core::ffi::c_void,
19687 lpulconnection: *mut usize,
19688 ) -> windows_core::HRESULT {
19689 unsafe {
19690 let this: &Identity =
19691 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19692 IMSLogon_Impl::Advise(
19693 this,
19694 core::mem::transmute_copy(&cbentryid),
19695 core::mem::transmute_copy(&lpentryid),
19696 core::mem::transmute_copy(&uleventmask),
19697 core::mem::transmute_copy(&lpadvisesink),
19698 core::mem::transmute_copy(&lpulconnection),
19699 )
19700 .into()
19701 }
19702 }
19703 unsafe extern "system" fn Unadvise<Identity: IMSLogon_Impl, const OFFSET: isize>(
19704 this: *mut core::ffi::c_void,
19705 ulconnection: usize,
19706 ) -> windows_core::HRESULT {
19707 unsafe {
19708 let this: &Identity =
19709 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19710 IMSLogon_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
19711 }
19712 }
19713 unsafe extern "system" fn OpenStatusEntry<Identity: IMSLogon_Impl, const OFFSET: isize>(
19714 this: *mut core::ffi::c_void,
19715 lpinterface: *mut windows_core::GUID,
19716 ulflags: u32,
19717 lpulobjtype: *mut u32,
19718 lppentry: *mut *mut core::ffi::c_void,
19719 ) -> windows_core::HRESULT {
19720 unsafe {
19721 let this: &Identity =
19722 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19723 IMSLogon_Impl::OpenStatusEntry(
19724 this,
19725 core::mem::transmute_copy(&lpinterface),
19726 core::mem::transmute_copy(&ulflags),
19727 core::mem::transmute_copy(&lpulobjtype),
19728 core::mem::transmute_copy(&lppentry),
19729 )
19730 .into()
19731 }
19732 }
19733 Self {
19734 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19735 GetLastError: GetLastError::<Identity, OFFSET>,
19736 Logoff: Logoff::<Identity, OFFSET>,
19737 OpenEntry: OpenEntry::<Identity, OFFSET>,
19738 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
19739 Advise: Advise::<Identity, OFFSET>,
19740 Unadvise: Unadvise::<Identity, OFFSET>,
19741 OpenStatusEntry: OpenStatusEntry::<Identity, OFFSET>,
19742 }
19743 }
19744 pub fn matches(iid: &windows_core::GUID) -> bool {
19745 iid == &<IMSLogon as windows_core::Interface>::IID
19746 }
19747}
19748impl windows_core::RuntimeName for IMSLogon {}
19749pub const IMSLogon_Advise: METHODS = METHODS(116i32);
19750pub const IMSLogon_CompareEntryIDs: METHODS = METHODS(115i32);
19751pub const IMSLogon_GetLastError: METHODS = METHODS(112i32);
19752pub const IMSLogon_Logoff: METHODS = METHODS(113i32);
19753pub const IMSLogon_OpenEntry: METHODS = METHODS(114i32);
19754pub const IMSLogon_OpenStatusEntry: METHODS = METHODS(118i32);
19755pub const IMSLogon_Unadvise: METHODS = METHODS(117i32);
19756windows_core::imp::define_interface!(
19757 IMSProvider,
19758 IMSProvider_Vtbl,
19759 0x00020310_0000_0000_c000_000000000046
19760);
19761windows_core::imp::interface_hierarchy!(IMSProvider, windows_core::IUnknown);
19762impl IMSProvider {
19763 pub unsafe fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
19764 unsafe {
19765 (windows_core::Interface::vtable(self).Shutdown)(
19766 windows_core::Interface::as_raw(self),
19767 lpulflags as _,
19768 )
19769 .ok()
19770 }
19771 }
19772 pub unsafe fn Logon<P0>(
19773 &self,
19774 lpmapisup: P0,
19775 uluiparam: usize,
19776 lpszprofilename: *mut i8,
19777 cbentryid: u32,
19778 lpentryid: *mut ENTRYID,
19779 ulflags: u32,
19780 lpinterface: *mut windows_core::GUID,
19781 lpcbspoolsecurity: *mut u32,
19782 lppbspoolsecurity: *mut *mut u8,
19783 lppmapierror: *mut *mut MAPIERROR,
19784 lppmslogon: *mut Option<IMSLogon>,
19785 lppmdb: *mut Option<IMsgStore>,
19786 ) -> windows_core::Result<()>
19787 where
19788 P0: windows_core::Param<IMAPISupport>,
19789 {
19790 unsafe {
19791 (windows_core::Interface::vtable(self).Logon)(
19792 windows_core::Interface::as_raw(self),
19793 lpmapisup.param().abi(),
19794 uluiparam,
19795 lpszprofilename as _,
19796 cbentryid,
19797 lpentryid as _,
19798 ulflags,
19799 lpinterface as _,
19800 lpcbspoolsecurity as _,
19801 lppbspoolsecurity as _,
19802 lppmapierror as _,
19803 core::mem::transmute(lppmslogon),
19804 core::mem::transmute(lppmdb),
19805 )
19806 .ok()
19807 }
19808 }
19809 pub unsafe fn SpoolerLogon<P0>(
19810 &self,
19811 lpmapisup: P0,
19812 uluiparam: usize,
19813 lpszprofilename: *mut i8,
19814 cbentryid: u32,
19815 lpentryid: *mut ENTRYID,
19816 ulflags: u32,
19817 lpinterface: *mut windows_core::GUID,
19818 cbspoolsecurity: u32,
19819 lpbspoolsecurity: *mut u8,
19820 lppmapierror: *mut *mut MAPIERROR,
19821 lppmslogon: *mut Option<IMSLogon>,
19822 lppmdb: *mut Option<IMsgStore>,
19823 ) -> windows_core::Result<()>
19824 where
19825 P0: windows_core::Param<IMAPISupport>,
19826 {
19827 unsafe {
19828 (windows_core::Interface::vtable(self).SpoolerLogon)(
19829 windows_core::Interface::as_raw(self),
19830 lpmapisup.param().abi(),
19831 uluiparam,
19832 lpszprofilename as _,
19833 cbentryid,
19834 lpentryid as _,
19835 ulflags,
19836 lpinterface as _,
19837 cbspoolsecurity,
19838 lpbspoolsecurity as _,
19839 lppmapierror as _,
19840 core::mem::transmute(lppmslogon),
19841 core::mem::transmute(lppmdb),
19842 )
19843 .ok()
19844 }
19845 }
19846 pub unsafe fn CompareStoreIDs(
19847 &self,
19848 cbentryid1: u32,
19849 lpentryid1: *mut ENTRYID,
19850 cbentryid2: u32,
19851 lpentryid2: *mut ENTRYID,
19852 ulflags: u32,
19853 lpulresult: *mut u32,
19854 ) -> windows_core::Result<()> {
19855 unsafe {
19856 (windows_core::Interface::vtable(self).CompareStoreIDs)(
19857 windows_core::Interface::as_raw(self),
19858 cbentryid1,
19859 lpentryid1 as _,
19860 cbentryid2,
19861 lpentryid2 as _,
19862 ulflags,
19863 lpulresult as _,
19864 )
19865 .ok()
19866 }
19867 }
19868}
19869#[repr(C)]
19870pub struct IMSProvider_Vtbl {
19871 pub base__: windows_core::IUnknown_Vtbl,
19872 pub Shutdown:
19873 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
19874 pub Logon: unsafe extern "system" fn(
19875 *mut core::ffi::c_void,
19876 *mut core::ffi::c_void,
19877 usize,
19878 *mut i8,
19879 u32,
19880 *mut ENTRYID,
19881 u32,
19882 *mut windows_core::GUID,
19883 *mut u32,
19884 *mut *mut u8,
19885 *mut *mut MAPIERROR,
19886 *mut *mut core::ffi::c_void,
19887 *mut *mut core::ffi::c_void,
19888 ) -> windows_core::HRESULT,
19889 pub SpoolerLogon: unsafe extern "system" fn(
19890 *mut core::ffi::c_void,
19891 *mut core::ffi::c_void,
19892 usize,
19893 *mut i8,
19894 u32,
19895 *mut ENTRYID,
19896 u32,
19897 *mut windows_core::GUID,
19898 u32,
19899 *mut u8,
19900 *mut *mut MAPIERROR,
19901 *mut *mut core::ffi::c_void,
19902 *mut *mut core::ffi::c_void,
19903 ) -> windows_core::HRESULT,
19904 pub CompareStoreIDs: unsafe extern "system" fn(
19905 *mut core::ffi::c_void,
19906 u32,
19907 *mut ENTRYID,
19908 u32,
19909 *mut ENTRYID,
19910 u32,
19911 *mut u32,
19912 ) -> windows_core::HRESULT,
19913}
19914pub trait IMSProvider_Impl: windows_core::IUnknownImpl {
19915 fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
19916 fn Logon(
19917 &self,
19918 lpmapisup: windows_core::Ref<'_, IMAPISupport>,
19919 uluiparam: usize,
19920 lpszprofilename: *mut i8,
19921 cbentryid: u32,
19922 lpentryid: *mut ENTRYID,
19923 ulflags: u32,
19924 lpinterface: *mut windows_core::GUID,
19925 lpcbspoolsecurity: *mut u32,
19926 lppbspoolsecurity: *mut *mut u8,
19927 lppmapierror: *mut *mut MAPIERROR,
19928 lppmslogon: windows_core::OutRef<'_, IMSLogon>,
19929 lppmdb: windows_core::OutRef<'_, IMsgStore>,
19930 ) -> windows_core::Result<()>;
19931 fn SpoolerLogon(
19932 &self,
19933 lpmapisup: windows_core::Ref<'_, IMAPISupport>,
19934 uluiparam: usize,
19935 lpszprofilename: *mut i8,
19936 cbentryid: u32,
19937 lpentryid: *mut ENTRYID,
19938 ulflags: u32,
19939 lpinterface: *mut windows_core::GUID,
19940 cbspoolsecurity: u32,
19941 lpbspoolsecurity: *mut u8,
19942 lppmapierror: *mut *mut MAPIERROR,
19943 lppmslogon: windows_core::OutRef<'_, IMSLogon>,
19944 lppmdb: windows_core::OutRef<'_, IMsgStore>,
19945 ) -> windows_core::Result<()>;
19946 fn CompareStoreIDs(
19947 &self,
19948 cbentryid1: u32,
19949 lpentryid1: *mut ENTRYID,
19950 cbentryid2: u32,
19951 lpentryid2: *mut ENTRYID,
19952 ulflags: u32,
19953 lpulresult: *mut u32,
19954 ) -> windows_core::Result<()>;
19955}
19956impl IMSProvider_Vtbl {
19957 pub const fn new<Identity: IMSProvider_Impl, const OFFSET: isize>() -> Self {
19958 unsafe extern "system" fn Shutdown<Identity: IMSProvider_Impl, const OFFSET: isize>(
19959 this: *mut core::ffi::c_void,
19960 lpulflags: *mut u32,
19961 ) -> windows_core::HRESULT {
19962 unsafe {
19963 let this: &Identity =
19964 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19965 IMSProvider_Impl::Shutdown(this, core::mem::transmute_copy(&lpulflags)).into()
19966 }
19967 }
19968 unsafe extern "system" fn Logon<Identity: IMSProvider_Impl, const OFFSET: isize>(
19969 this: *mut core::ffi::c_void,
19970 lpmapisup: *mut core::ffi::c_void,
19971 uluiparam: usize,
19972 lpszprofilename: *mut i8,
19973 cbentryid: u32,
19974 lpentryid: *mut ENTRYID,
19975 ulflags: u32,
19976 lpinterface: *mut windows_core::GUID,
19977 lpcbspoolsecurity: *mut u32,
19978 lppbspoolsecurity: *mut *mut u8,
19979 lppmapierror: *mut *mut MAPIERROR,
19980 lppmslogon: *mut *mut core::ffi::c_void,
19981 lppmdb: *mut *mut core::ffi::c_void,
19982 ) -> windows_core::HRESULT {
19983 unsafe {
19984 let this: &Identity =
19985 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19986 IMSProvider_Impl::Logon(
19987 this,
19988 core::mem::transmute_copy(&lpmapisup),
19989 core::mem::transmute_copy(&uluiparam),
19990 core::mem::transmute_copy(&lpszprofilename),
19991 core::mem::transmute_copy(&cbentryid),
19992 core::mem::transmute_copy(&lpentryid),
19993 core::mem::transmute_copy(&ulflags),
19994 core::mem::transmute_copy(&lpinterface),
19995 core::mem::transmute_copy(&lpcbspoolsecurity),
19996 core::mem::transmute_copy(&lppbspoolsecurity),
19997 core::mem::transmute_copy(&lppmapierror),
19998 core::mem::transmute_copy(&lppmslogon),
19999 core::mem::transmute_copy(&lppmdb),
20000 )
20001 .into()
20002 }
20003 }
20004 unsafe extern "system" fn SpoolerLogon<Identity: IMSProvider_Impl, const OFFSET: isize>(
20005 this: *mut core::ffi::c_void,
20006 lpmapisup: *mut core::ffi::c_void,
20007 uluiparam: usize,
20008 lpszprofilename: *mut i8,
20009 cbentryid: u32,
20010 lpentryid: *mut ENTRYID,
20011 ulflags: u32,
20012 lpinterface: *mut windows_core::GUID,
20013 cbspoolsecurity: u32,
20014 lpbspoolsecurity: *mut u8,
20015 lppmapierror: *mut *mut MAPIERROR,
20016 lppmslogon: *mut *mut core::ffi::c_void,
20017 lppmdb: *mut *mut core::ffi::c_void,
20018 ) -> windows_core::HRESULT {
20019 unsafe {
20020 let this: &Identity =
20021 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20022 IMSProvider_Impl::SpoolerLogon(
20023 this,
20024 core::mem::transmute_copy(&lpmapisup),
20025 core::mem::transmute_copy(&uluiparam),
20026 core::mem::transmute_copy(&lpszprofilename),
20027 core::mem::transmute_copy(&cbentryid),
20028 core::mem::transmute_copy(&lpentryid),
20029 core::mem::transmute_copy(&ulflags),
20030 core::mem::transmute_copy(&lpinterface),
20031 core::mem::transmute_copy(&cbspoolsecurity),
20032 core::mem::transmute_copy(&lpbspoolsecurity),
20033 core::mem::transmute_copy(&lppmapierror),
20034 core::mem::transmute_copy(&lppmslogon),
20035 core::mem::transmute_copy(&lppmdb),
20036 )
20037 .into()
20038 }
20039 }
20040 unsafe extern "system" fn CompareStoreIDs<
20041 Identity: IMSProvider_Impl,
20042 const OFFSET: isize,
20043 >(
20044 this: *mut core::ffi::c_void,
20045 cbentryid1: u32,
20046 lpentryid1: *mut ENTRYID,
20047 cbentryid2: u32,
20048 lpentryid2: *mut ENTRYID,
20049 ulflags: u32,
20050 lpulresult: *mut u32,
20051 ) -> windows_core::HRESULT {
20052 unsafe {
20053 let this: &Identity =
20054 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20055 IMSProvider_Impl::CompareStoreIDs(
20056 this,
20057 core::mem::transmute_copy(&cbentryid1),
20058 core::mem::transmute_copy(&lpentryid1),
20059 core::mem::transmute_copy(&cbentryid2),
20060 core::mem::transmute_copy(&lpentryid2),
20061 core::mem::transmute_copy(&ulflags),
20062 core::mem::transmute_copy(&lpulresult),
20063 )
20064 .into()
20065 }
20066 }
20067 Self {
20068 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20069 Shutdown: Shutdown::<Identity, OFFSET>,
20070 Logon: Logon::<Identity, OFFSET>,
20071 SpoolerLogon: SpoolerLogon::<Identity, OFFSET>,
20072 CompareStoreIDs: CompareStoreIDs::<Identity, OFFSET>,
20073 }
20074 }
20075 pub fn matches(iid: &windows_core::GUID) -> bool {
20076 iid == &<IMSProvider as windows_core::Interface>::IID
20077 }
20078}
20079impl windows_core::RuntimeName for IMSProvider {}
20080pub const IMSProvider_CompareStoreIDs: METHODS = METHODS(111i32);
20081pub const IMSProvider_Logon: METHODS = METHODS(109i32);
20082pub const IMSProvider_Shutdown: METHODS = METHODS(108i32);
20083pub const IMSProvider_SpoolerLogon: METHODS = METHODS(110i32);
20084windows_core::imp::define_interface!(
20085 IMailUser,
20086 IMailUser_Vtbl,
20087 0x0002030a_0000_0000_c000_000000000046
20088);
20089impl core::ops::Deref for IMailUser {
20090 type Target = IMAPIProp;
20091 fn deref(&self) -> &Self::Target {
20092 unsafe { core::mem::transmute(self) }
20093 }
20094}
20095windows_core::imp::interface_hierarchy!(IMailUser, windows_core::IUnknown, IMAPIProp);
20096#[repr(C)]
20097pub struct IMailUser_Vtbl {
20098 pub base__: IMAPIProp_Vtbl,
20099}
20100pub trait IMailUser_Impl: IMAPIProp_Impl {}
20101impl IMailUser_Vtbl {
20102 pub const fn new<Identity: IMailUser_Impl, const OFFSET: isize>() -> Self {
20103 Self {
20104 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
20105 }
20106 }
20107 pub fn matches(iid: &windows_core::GUID) -> bool {
20108 iid == &<IMailUser as windows_core::Interface>::IID
20109 || iid == &<IMAPIProp as windows_core::Interface>::IID
20110 }
20111}
20112impl windows_core::RuntimeName for IMailUser {}
20113windows_core::imp::define_interface!(
20114 IMessage,
20115 IMessage_Vtbl,
20116 0x00020307_0000_0000_c000_000000000046
20117);
20118impl core::ops::Deref for IMessage {
20119 type Target = IMAPIProp;
20120 fn deref(&self) -> &Self::Target {
20121 unsafe { core::mem::transmute(self) }
20122 }
20123}
20124windows_core::imp::interface_hierarchy!(IMessage, windows_core::IUnknown, IMAPIProp);
20125impl IMessage {
20126 pub unsafe fn GetAttachmentTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
20127 unsafe {
20128 let mut result__ = core::mem::zeroed();
20129 (windows_core::Interface::vtable(self).GetAttachmentTable)(
20130 windows_core::Interface::as_raw(self),
20131 ulflags,
20132 &mut result__,
20133 )
20134 .and_then(|| windows_core::Type::from_abi(result__))
20135 }
20136 }
20137 pub unsafe fn OpenAttach(
20138 &self,
20139 ulattachmentnum: u32,
20140 lpinterface: *mut windows_core::GUID,
20141 ulflags: u32,
20142 lppattach: *mut Option<IAttach>,
20143 ) -> windows_core::Result<()> {
20144 unsafe {
20145 (windows_core::Interface::vtable(self).OpenAttach)(
20146 windows_core::Interface::as_raw(self),
20147 ulattachmentnum,
20148 lpinterface as _,
20149 ulflags,
20150 core::mem::transmute(lppattach),
20151 )
20152 .ok()
20153 }
20154 }
20155 pub unsafe fn CreateAttach(
20156 &self,
20157 lpinterface: *mut windows_core::GUID,
20158 ulflags: u32,
20159 lpulattachmentnum: *mut u32,
20160 lppattach: *mut Option<IAttach>,
20161 ) -> windows_core::Result<()> {
20162 unsafe {
20163 (windows_core::Interface::vtable(self).CreateAttach)(
20164 windows_core::Interface::as_raw(self),
20165 lpinterface as _,
20166 ulflags,
20167 lpulattachmentnum as _,
20168 core::mem::transmute(lppattach),
20169 )
20170 .ok()
20171 }
20172 }
20173 pub unsafe fn DeleteAttach<P2>(
20174 &self,
20175 ulattachmentnum: u32,
20176 uluiparam: usize,
20177 lpprogress: P2,
20178 ulflags: u32,
20179 ) -> windows_core::Result<()>
20180 where
20181 P2: windows_core::Param<IMAPIProgress>,
20182 {
20183 unsafe {
20184 (windows_core::Interface::vtable(self).DeleteAttach)(
20185 windows_core::Interface::as_raw(self),
20186 ulattachmentnum,
20187 uluiparam,
20188 lpprogress.param().abi(),
20189 ulflags,
20190 )
20191 .ok()
20192 }
20193 }
20194 pub unsafe fn GetRecipientTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
20195 unsafe {
20196 let mut result__ = core::mem::zeroed();
20197 (windows_core::Interface::vtable(self).GetRecipientTable)(
20198 windows_core::Interface::as_raw(self),
20199 ulflags,
20200 &mut result__,
20201 )
20202 .and_then(|| windows_core::Type::from_abi(result__))
20203 }
20204 }
20205 pub unsafe fn ModifyRecipients(
20206 &self,
20207 ulflags: u32,
20208 lpmods: *mut ADRLIST,
20209 ) -> windows_core::Result<()> {
20210 unsafe {
20211 (windows_core::Interface::vtable(self).ModifyRecipients)(
20212 windows_core::Interface::as_raw(self),
20213 ulflags,
20214 lpmods as _,
20215 )
20216 .ok()
20217 }
20218 }
20219 pub unsafe fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()> {
20220 unsafe {
20221 (windows_core::Interface::vtable(self).SubmitMessage)(
20222 windows_core::Interface::as_raw(self),
20223 ulflags,
20224 )
20225 .ok()
20226 }
20227 }
20228 pub unsafe fn SetReadFlag(&self, ulflags: u32) -> windows_core::Result<()> {
20229 unsafe {
20230 (windows_core::Interface::vtable(self).SetReadFlag)(
20231 windows_core::Interface::as_raw(self),
20232 ulflags,
20233 )
20234 .ok()
20235 }
20236 }
20237}
20238#[repr(C)]
20239pub struct IMessage_Vtbl {
20240 pub base__: IMAPIProp_Vtbl,
20241 pub GetAttachmentTable: unsafe extern "system" fn(
20242 *mut core::ffi::c_void,
20243 u32,
20244 *mut *mut core::ffi::c_void,
20245 ) -> windows_core::HRESULT,
20246 pub OpenAttach: unsafe extern "system" fn(
20247 *mut core::ffi::c_void,
20248 u32,
20249 *mut windows_core::GUID,
20250 u32,
20251 *mut *mut core::ffi::c_void,
20252 ) -> windows_core::HRESULT,
20253 pub CreateAttach: unsafe extern "system" fn(
20254 *mut core::ffi::c_void,
20255 *mut windows_core::GUID,
20256 u32,
20257 *mut u32,
20258 *mut *mut core::ffi::c_void,
20259 ) -> windows_core::HRESULT,
20260 pub DeleteAttach: unsafe extern "system" fn(
20261 *mut core::ffi::c_void,
20262 u32,
20263 usize,
20264 *mut core::ffi::c_void,
20265 u32,
20266 ) -> windows_core::HRESULT,
20267 pub GetRecipientTable: unsafe extern "system" fn(
20268 *mut core::ffi::c_void,
20269 u32,
20270 *mut *mut core::ffi::c_void,
20271 ) -> windows_core::HRESULT,
20272 pub ModifyRecipients: unsafe extern "system" fn(
20273 *mut core::ffi::c_void,
20274 u32,
20275 *mut ADRLIST,
20276 ) -> windows_core::HRESULT,
20277 pub SubmitMessage:
20278 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
20279 pub SetReadFlag:
20280 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
20281}
20282pub trait IMessage_Impl: IMAPIProp_Impl {
20283 fn GetAttachmentTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
20284 fn OpenAttach(
20285 &self,
20286 ulattachmentnum: u32,
20287 lpinterface: *mut windows_core::GUID,
20288 ulflags: u32,
20289 lppattach: windows_core::OutRef<'_, IAttach>,
20290 ) -> windows_core::Result<()>;
20291 fn CreateAttach(
20292 &self,
20293 lpinterface: *mut windows_core::GUID,
20294 ulflags: u32,
20295 lpulattachmentnum: *mut u32,
20296 lppattach: windows_core::OutRef<'_, IAttach>,
20297 ) -> windows_core::Result<()>;
20298 fn DeleteAttach(
20299 &self,
20300 ulattachmentnum: u32,
20301 uluiparam: usize,
20302 lpprogress: windows_core::Ref<'_, IMAPIProgress>,
20303 ulflags: u32,
20304 ) -> windows_core::Result<()>;
20305 fn GetRecipientTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
20306 fn ModifyRecipients(&self, ulflags: u32, lpmods: *mut ADRLIST) -> windows_core::Result<()>;
20307 fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()>;
20308 fn SetReadFlag(&self, ulflags: u32) -> windows_core::Result<()>;
20309}
20310impl IMessage_Vtbl {
20311 pub const fn new<Identity: IMessage_Impl, const OFFSET: isize>() -> Self {
20312 unsafe extern "system" fn GetAttachmentTable<
20313 Identity: IMessage_Impl,
20314 const OFFSET: isize,
20315 >(
20316 this: *mut core::ffi::c_void,
20317 ulflags: u32,
20318 lpptable: *mut *mut core::ffi::c_void,
20319 ) -> windows_core::HRESULT {
20320 unsafe {
20321 let this: &Identity =
20322 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20323 match IMessage_Impl::GetAttachmentTable(this, core::mem::transmute_copy(&ulflags)) {
20324 Ok(ok__) => {
20325 lpptable.write(core::mem::transmute(ok__));
20326 windows_core::HRESULT(0)
20327 }
20328 Err(err) => err.into(),
20329 }
20330 }
20331 }
20332 unsafe extern "system" fn OpenAttach<Identity: IMessage_Impl, const OFFSET: isize>(
20333 this: *mut core::ffi::c_void,
20334 ulattachmentnum: u32,
20335 lpinterface: *mut windows_core::GUID,
20336 ulflags: u32,
20337 lppattach: *mut *mut core::ffi::c_void,
20338 ) -> windows_core::HRESULT {
20339 unsafe {
20340 let this: &Identity =
20341 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20342 IMessage_Impl::OpenAttach(
20343 this,
20344 core::mem::transmute_copy(&ulattachmentnum),
20345 core::mem::transmute_copy(&lpinterface),
20346 core::mem::transmute_copy(&ulflags),
20347 core::mem::transmute_copy(&lppattach),
20348 )
20349 .into()
20350 }
20351 }
20352 unsafe extern "system" fn CreateAttach<Identity: IMessage_Impl, const OFFSET: isize>(
20353 this: *mut core::ffi::c_void,
20354 lpinterface: *mut windows_core::GUID,
20355 ulflags: u32,
20356 lpulattachmentnum: *mut u32,
20357 lppattach: *mut *mut core::ffi::c_void,
20358 ) -> windows_core::HRESULT {
20359 unsafe {
20360 let this: &Identity =
20361 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20362 IMessage_Impl::CreateAttach(
20363 this,
20364 core::mem::transmute_copy(&lpinterface),
20365 core::mem::transmute_copy(&ulflags),
20366 core::mem::transmute_copy(&lpulattachmentnum),
20367 core::mem::transmute_copy(&lppattach),
20368 )
20369 .into()
20370 }
20371 }
20372 unsafe extern "system" fn DeleteAttach<Identity: IMessage_Impl, const OFFSET: isize>(
20373 this: *mut core::ffi::c_void,
20374 ulattachmentnum: u32,
20375 uluiparam: usize,
20376 lpprogress: *mut core::ffi::c_void,
20377 ulflags: u32,
20378 ) -> windows_core::HRESULT {
20379 unsafe {
20380 let this: &Identity =
20381 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20382 IMessage_Impl::DeleteAttach(
20383 this,
20384 core::mem::transmute_copy(&ulattachmentnum),
20385 core::mem::transmute_copy(&uluiparam),
20386 core::mem::transmute_copy(&lpprogress),
20387 core::mem::transmute_copy(&ulflags),
20388 )
20389 .into()
20390 }
20391 }
20392 unsafe extern "system" fn GetRecipientTable<
20393 Identity: IMessage_Impl,
20394 const OFFSET: isize,
20395 >(
20396 this: *mut core::ffi::c_void,
20397 ulflags: u32,
20398 lpptable: *mut *mut core::ffi::c_void,
20399 ) -> windows_core::HRESULT {
20400 unsafe {
20401 let this: &Identity =
20402 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20403 match IMessage_Impl::GetRecipientTable(this, core::mem::transmute_copy(&ulflags)) {
20404 Ok(ok__) => {
20405 lpptable.write(core::mem::transmute(ok__));
20406 windows_core::HRESULT(0)
20407 }
20408 Err(err) => err.into(),
20409 }
20410 }
20411 }
20412 unsafe extern "system" fn ModifyRecipients<Identity: IMessage_Impl, const OFFSET: isize>(
20413 this: *mut core::ffi::c_void,
20414 ulflags: u32,
20415 lpmods: *mut ADRLIST,
20416 ) -> windows_core::HRESULT {
20417 unsafe {
20418 let this: &Identity =
20419 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20420 IMessage_Impl::ModifyRecipients(
20421 this,
20422 core::mem::transmute_copy(&ulflags),
20423 core::mem::transmute_copy(&lpmods),
20424 )
20425 .into()
20426 }
20427 }
20428 unsafe extern "system" fn SubmitMessage<Identity: IMessage_Impl, const OFFSET: isize>(
20429 this: *mut core::ffi::c_void,
20430 ulflags: u32,
20431 ) -> windows_core::HRESULT {
20432 unsafe {
20433 let this: &Identity =
20434 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20435 IMessage_Impl::SubmitMessage(this, core::mem::transmute_copy(&ulflags)).into()
20436 }
20437 }
20438 unsafe extern "system" fn SetReadFlag<Identity: IMessage_Impl, const OFFSET: isize>(
20439 this: *mut core::ffi::c_void,
20440 ulflags: u32,
20441 ) -> windows_core::HRESULT {
20442 unsafe {
20443 let this: &Identity =
20444 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20445 IMessage_Impl::SetReadFlag(this, core::mem::transmute_copy(&ulflags)).into()
20446 }
20447 }
20448 Self {
20449 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
20450 GetAttachmentTable: GetAttachmentTable::<Identity, OFFSET>,
20451 OpenAttach: OpenAttach::<Identity, OFFSET>,
20452 CreateAttach: CreateAttach::<Identity, OFFSET>,
20453 DeleteAttach: DeleteAttach::<Identity, OFFSET>,
20454 GetRecipientTable: GetRecipientTable::<Identity, OFFSET>,
20455 ModifyRecipients: ModifyRecipients::<Identity, OFFSET>,
20456 SubmitMessage: SubmitMessage::<Identity, OFFSET>,
20457 SetReadFlag: SetReadFlag::<Identity, OFFSET>,
20458 }
20459 }
20460 pub fn matches(iid: &windows_core::GUID) -> bool {
20461 iid == &<IMessage as windows_core::Interface>::IID
20462 || iid == &<IMAPIProp as windows_core::Interface>::IID
20463 }
20464}
20465impl windows_core::RuntimeName for IMessage {}
20466pub const IMessage_CreateAttach: METHODS = METHODS(76i32);
20467pub const IMessage_DeleteAttach: METHODS = METHODS(77i32);
20468pub const IMessage_GetAttachmentTable: METHODS = METHODS(74i32);
20469pub const IMessage_GetRecipientTable: METHODS = METHODS(78i32);
20470pub const IMessage_ModifyRecipients: METHODS = METHODS(79i32);
20471pub const IMessage_OpenAttach: METHODS = METHODS(75i32);
20472pub const IMessage_SetReadFlag: METHODS = METHODS(81i32);
20473pub const IMessage_SubmitMessage: METHODS = METHODS(80i32);
20474windows_core::imp::define_interface!(
20475 IMimeAddressTable,
20476 IMimeAddressTable_Vtbl,
20477 0xc558834a_7f86_11d0_8252_00c04fd85ab4
20478);
20479windows_core::imp::interface_hierarchy!(IMimeAddressTable, windows_core::IUnknown);
20480impl IMimeAddressTable {
20481 pub unsafe fn Append<P2, P3>(
20482 &self,
20483 dwadrtype: u32,
20484 ietfriendly: ENCODINGTYPE,
20485 pszfriendly: P2,
20486 pszemail: P3,
20487 phaddress: *mut *mut HADDRESS__,
20488 ) -> windows_core::Result<()>
20489 where
20490 P2: windows_core::Param<windows_core::PCSTR>,
20491 P3: windows_core::Param<windows_core::PCSTR>,
20492 {
20493 unsafe {
20494 (windows_core::Interface::vtable(self).Append)(
20495 windows_core::Interface::as_raw(self),
20496 dwadrtype,
20497 ietfriendly,
20498 pszfriendly.param().abi(),
20499 pszemail.param().abi(),
20500 phaddress as _,
20501 )
20502 .ok()
20503 }
20504 }
20505 pub unsafe fn Insert(
20506 &self,
20507 paddress: *mut ADDRESSPROPS,
20508 phaddress: *mut *mut HADDRESS__,
20509 ) -> windows_core::Result<()> {
20510 unsafe {
20511 (windows_core::Interface::vtable(self).Insert)(
20512 windows_core::Interface::as_raw(self),
20513 paddress as _,
20514 phaddress as _,
20515 )
20516 .ok()
20517 }
20518 }
20519 pub unsafe fn SetProps(
20520 &self,
20521 haddress: *mut HADDRESS__,
20522 paddress: *mut ADDRESSPROPS,
20523 ) -> windows_core::Result<()> {
20524 unsafe {
20525 (windows_core::Interface::vtable(self).SetProps)(
20526 windows_core::Interface::as_raw(self),
20527 haddress as _,
20528 paddress as _,
20529 )
20530 .ok()
20531 }
20532 }
20533 pub unsafe fn GetProps(
20534 &self,
20535 haddress: *mut HADDRESS__,
20536 paddress: *mut ADDRESSPROPS,
20537 ) -> windows_core::Result<()> {
20538 unsafe {
20539 (windows_core::Interface::vtable(self).GetProps)(
20540 windows_core::Interface::as_raw(self),
20541 haddress as _,
20542 paddress as _,
20543 )
20544 .ok()
20545 }
20546 }
20547 pub unsafe fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()> {
20548 unsafe {
20549 (windows_core::Interface::vtable(self).GetSender)(
20550 windows_core::Interface::as_raw(self),
20551 paddress as _,
20552 )
20553 .ok()
20554 }
20555 }
20556 pub unsafe fn CountTypes(&self, dwadrtypes: u32, pcadrs: *mut u32) -> windows_core::Result<()> {
20557 unsafe {
20558 (windows_core::Interface::vtable(self).CountTypes)(
20559 windows_core::Interface::as_raw(self),
20560 dwadrtypes,
20561 pcadrs as _,
20562 )
20563 .ok()
20564 }
20565 }
20566 pub unsafe fn GetTypes(
20567 &self,
20568 dwadrtypes: u32,
20569 dwprops: u32,
20570 plist: *mut ADDRESSLIST,
20571 ) -> windows_core::Result<()> {
20572 unsafe {
20573 (windows_core::Interface::vtable(self).GetTypes)(
20574 windows_core::Interface::as_raw(self),
20575 dwadrtypes,
20576 dwprops,
20577 plist as _,
20578 )
20579 .ok()
20580 }
20581 }
20582 pub unsafe fn EnumTypes(
20583 &self,
20584 dwadrtypes: u32,
20585 dwprops: u32,
20586 ) -> windows_core::Result<IMimeEnumAddressTypes> {
20587 unsafe {
20588 let mut result__ = core::mem::zeroed();
20589 (windows_core::Interface::vtable(self).EnumTypes)(
20590 windows_core::Interface::as_raw(self),
20591 dwadrtypes,
20592 dwprops,
20593 &mut result__,
20594 )
20595 .and_then(|| windows_core::Type::from_abi(result__))
20596 }
20597 }
20598 pub unsafe fn Delete(&self, haddress: *mut HADDRESS__) -> windows_core::Result<()> {
20599 unsafe {
20600 (windows_core::Interface::vtable(self).Delete)(
20601 windows_core::Interface::as_raw(self),
20602 haddress as _,
20603 )
20604 .ok()
20605 }
20606 }
20607 pub unsafe fn DeleteTypes(&self, dwadrtypes: u32) -> windows_core::Result<()> {
20608 unsafe {
20609 (windows_core::Interface::vtable(self).DeleteTypes)(
20610 windows_core::Interface::as_raw(self),
20611 dwadrtypes,
20612 )
20613 .ok()
20614 }
20615 }
20616 pub unsafe fn GetFormat(
20617 &self,
20618 dwadrtype: u32,
20619 format: ADDRESSFORMAT,
20620 ppszformat: *mut windows_core::PSTR,
20621 ) -> windows_core::Result<()> {
20622 unsafe {
20623 (windows_core::Interface::vtable(self).GetFormat)(
20624 windows_core::Interface::as_raw(self),
20625 dwadrtype,
20626 format,
20627 ppszformat as _,
20628 )
20629 .ok()
20630 }
20631 }
20632 pub unsafe fn AppendRfc822<P2>(
20633 &self,
20634 dwadrtype: u32,
20635 ietencoding: ENCODINGTYPE,
20636 pszrfc822adr: P2,
20637 ) -> windows_core::Result<()>
20638 where
20639 P2: windows_core::Param<windows_core::PCSTR>,
20640 {
20641 unsafe {
20642 (windows_core::Interface::vtable(self).AppendRfc822)(
20643 windows_core::Interface::as_raw(self),
20644 dwadrtype,
20645 ietencoding,
20646 pszrfc822adr.param().abi(),
20647 )
20648 .ok()
20649 }
20650 }
20651 pub unsafe fn ParseRfc822<P2>(
20652 &self,
20653 dwadrtype: u32,
20654 ietencoding: ENCODINGTYPE,
20655 pszrfc822adr: P2,
20656 plist: *mut ADDRESSLIST,
20657 ) -> windows_core::Result<()>
20658 where
20659 P2: windows_core::Param<windows_core::PCSTR>,
20660 {
20661 unsafe {
20662 (windows_core::Interface::vtable(self).ParseRfc822)(
20663 windows_core::Interface::as_raw(self),
20664 dwadrtype,
20665 ietencoding,
20666 pszrfc822adr.param().abi(),
20667 plist as _,
20668 )
20669 .ok()
20670 }
20671 }
20672 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeAddressTable> {
20673 unsafe {
20674 let mut result__ = core::mem::zeroed();
20675 (windows_core::Interface::vtable(self).Clone)(
20676 windows_core::Interface::as_raw(self),
20677 &mut result__,
20678 )
20679 .and_then(|| windows_core::Type::from_abi(result__))
20680 }
20681 }
20682 pub unsafe fn BindToObject(
20683 &self,
20684 riid: *const windows_core::GUID,
20685 ppvobject: *mut *mut core::ffi::c_void,
20686 ) -> windows_core::Result<()> {
20687 unsafe {
20688 (windows_core::Interface::vtable(self).BindToObject)(
20689 windows_core::Interface::as_raw(self),
20690 riid,
20691 ppvobject as _,
20692 )
20693 .ok()
20694 }
20695 }
20696}
20697#[repr(C)]
20698pub struct IMimeAddressTable_Vtbl {
20699 pub base__: windows_core::IUnknown_Vtbl,
20700 pub Append: unsafe extern "system" fn(
20701 *mut core::ffi::c_void,
20702 u32,
20703 ENCODINGTYPE,
20704 windows_core::PCSTR,
20705 windows_core::PCSTR,
20706 *mut *mut HADDRESS__,
20707 ) -> windows_core::HRESULT,
20708 pub Insert: unsafe extern "system" fn(
20709 *mut core::ffi::c_void,
20710 *mut ADDRESSPROPS,
20711 *mut *mut HADDRESS__,
20712 ) -> windows_core::HRESULT,
20713 pub SetProps: unsafe extern "system" fn(
20714 *mut core::ffi::c_void,
20715 *mut HADDRESS__,
20716 *mut ADDRESSPROPS,
20717 ) -> windows_core::HRESULT,
20718 pub GetProps: unsafe extern "system" fn(
20719 *mut core::ffi::c_void,
20720 *mut HADDRESS__,
20721 *mut ADDRESSPROPS,
20722 ) -> windows_core::HRESULT,
20723 pub GetSender: unsafe extern "system" fn(
20724 *mut core::ffi::c_void,
20725 *mut ADDRESSPROPS,
20726 ) -> windows_core::HRESULT,
20727 pub CountTypes:
20728 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
20729 pub GetTypes: unsafe extern "system" fn(
20730 *mut core::ffi::c_void,
20731 u32,
20732 u32,
20733 *mut ADDRESSLIST,
20734 ) -> windows_core::HRESULT,
20735 pub EnumTypes: unsafe extern "system" fn(
20736 *mut core::ffi::c_void,
20737 u32,
20738 u32,
20739 *mut *mut core::ffi::c_void,
20740 ) -> windows_core::HRESULT,
20741 pub Delete:
20742 unsafe extern "system" fn(*mut core::ffi::c_void, *mut HADDRESS__) -> windows_core::HRESULT,
20743 pub DeleteTypes:
20744 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
20745 pub GetFormat: unsafe extern "system" fn(
20746 *mut core::ffi::c_void,
20747 u32,
20748 ADDRESSFORMAT,
20749 *mut windows_core::PSTR,
20750 ) -> windows_core::HRESULT,
20751 pub AppendRfc822: unsafe extern "system" fn(
20752 *mut core::ffi::c_void,
20753 u32,
20754 ENCODINGTYPE,
20755 windows_core::PCSTR,
20756 ) -> windows_core::HRESULT,
20757 pub ParseRfc822: unsafe extern "system" fn(
20758 *mut core::ffi::c_void,
20759 u32,
20760 ENCODINGTYPE,
20761 windows_core::PCSTR,
20762 *mut ADDRESSLIST,
20763 ) -> windows_core::HRESULT,
20764 pub Clone: unsafe extern "system" fn(
20765 *mut core::ffi::c_void,
20766 *mut *mut core::ffi::c_void,
20767 ) -> windows_core::HRESULT,
20768 pub BindToObject: unsafe extern "system" fn(
20769 *mut core::ffi::c_void,
20770 *const windows_core::GUID,
20771 *mut *mut core::ffi::c_void,
20772 ) -> windows_core::HRESULT,
20773}
20774pub trait IMimeAddressTable_Impl: windows_core::IUnknownImpl {
20775 fn Append(
20776 &self,
20777 dwadrtype: u32,
20778 ietfriendly: ENCODINGTYPE,
20779 pszfriendly: &windows_core::PCSTR,
20780 pszemail: &windows_core::PCSTR,
20781 phaddress: *mut *mut HADDRESS__,
20782 ) -> windows_core::Result<()>;
20783 fn Insert(
20784 &self,
20785 paddress: *mut ADDRESSPROPS,
20786 phaddress: *mut *mut HADDRESS__,
20787 ) -> windows_core::Result<()>;
20788 fn SetProps(
20789 &self,
20790 haddress: *mut HADDRESS__,
20791 paddress: *mut ADDRESSPROPS,
20792 ) -> windows_core::Result<()>;
20793 fn GetProps(
20794 &self,
20795 haddress: *mut HADDRESS__,
20796 paddress: *mut ADDRESSPROPS,
20797 ) -> windows_core::Result<()>;
20798 fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()>;
20799 fn CountTypes(&self, dwadrtypes: u32, pcadrs: *mut u32) -> windows_core::Result<()>;
20800 fn GetTypes(
20801 &self,
20802 dwadrtypes: u32,
20803 dwprops: u32,
20804 plist: *mut ADDRESSLIST,
20805 ) -> windows_core::Result<()>;
20806 fn EnumTypes(
20807 &self,
20808 dwadrtypes: u32,
20809 dwprops: u32,
20810 ) -> windows_core::Result<IMimeEnumAddressTypes>;
20811 fn Delete(&self, haddress: *mut HADDRESS__) -> windows_core::Result<()>;
20812 fn DeleteTypes(&self, dwadrtypes: u32) -> windows_core::Result<()>;
20813 fn GetFormat(
20814 &self,
20815 dwadrtype: u32,
20816 format: ADDRESSFORMAT,
20817 ppszformat: *mut windows_core::PSTR,
20818 ) -> windows_core::Result<()>;
20819 fn AppendRfc822(
20820 &self,
20821 dwadrtype: u32,
20822 ietencoding: ENCODINGTYPE,
20823 pszrfc822adr: &windows_core::PCSTR,
20824 ) -> windows_core::Result<()>;
20825 fn ParseRfc822(
20826 &self,
20827 dwadrtype: u32,
20828 ietencoding: ENCODINGTYPE,
20829 pszrfc822adr: &windows_core::PCSTR,
20830 plist: *mut ADDRESSLIST,
20831 ) -> windows_core::Result<()>;
20832 fn Clone(&self) -> windows_core::Result<IMimeAddressTable>;
20833 fn BindToObject(
20834 &self,
20835 riid: *const windows_core::GUID,
20836 ppvobject: *mut *mut core::ffi::c_void,
20837 ) -> windows_core::Result<()>;
20838}
20839impl IMimeAddressTable_Vtbl {
20840 pub const fn new<Identity: IMimeAddressTable_Impl, const OFFSET: isize>() -> Self {
20841 unsafe extern "system" fn Append<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
20842 this: *mut core::ffi::c_void,
20843 dwadrtype: u32,
20844 ietfriendly: ENCODINGTYPE,
20845 pszfriendly: windows_core::PCSTR,
20846 pszemail: windows_core::PCSTR,
20847 phaddress: *mut *mut HADDRESS__,
20848 ) -> windows_core::HRESULT {
20849 unsafe {
20850 let this: &Identity =
20851 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20852 IMimeAddressTable_Impl::Append(
20853 this,
20854 core::mem::transmute_copy(&dwadrtype),
20855 core::mem::transmute_copy(&ietfriendly),
20856 core::mem::transmute(&pszfriendly),
20857 core::mem::transmute(&pszemail),
20858 core::mem::transmute_copy(&phaddress),
20859 )
20860 .into()
20861 }
20862 }
20863 unsafe extern "system" fn Insert<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
20864 this: *mut core::ffi::c_void,
20865 paddress: *mut ADDRESSPROPS,
20866 phaddress: *mut *mut HADDRESS__,
20867 ) -> windows_core::HRESULT {
20868 unsafe {
20869 let this: &Identity =
20870 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20871 IMimeAddressTable_Impl::Insert(
20872 this,
20873 core::mem::transmute_copy(&paddress),
20874 core::mem::transmute_copy(&phaddress),
20875 )
20876 .into()
20877 }
20878 }
20879 unsafe extern "system" fn SetProps<
20880 Identity: IMimeAddressTable_Impl,
20881 const OFFSET: isize,
20882 >(
20883 this: *mut core::ffi::c_void,
20884 haddress: *mut HADDRESS__,
20885 paddress: *mut ADDRESSPROPS,
20886 ) -> windows_core::HRESULT {
20887 unsafe {
20888 let this: &Identity =
20889 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20890 IMimeAddressTable_Impl::SetProps(
20891 this,
20892 core::mem::transmute_copy(&haddress),
20893 core::mem::transmute_copy(&paddress),
20894 )
20895 .into()
20896 }
20897 }
20898 unsafe extern "system" fn GetProps<
20899 Identity: IMimeAddressTable_Impl,
20900 const OFFSET: isize,
20901 >(
20902 this: *mut core::ffi::c_void,
20903 haddress: *mut HADDRESS__,
20904 paddress: *mut ADDRESSPROPS,
20905 ) -> windows_core::HRESULT {
20906 unsafe {
20907 let this: &Identity =
20908 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20909 IMimeAddressTable_Impl::GetProps(
20910 this,
20911 core::mem::transmute_copy(&haddress),
20912 core::mem::transmute_copy(&paddress),
20913 )
20914 .into()
20915 }
20916 }
20917 unsafe extern "system" fn GetSender<
20918 Identity: IMimeAddressTable_Impl,
20919 const OFFSET: isize,
20920 >(
20921 this: *mut core::ffi::c_void,
20922 paddress: *mut ADDRESSPROPS,
20923 ) -> windows_core::HRESULT {
20924 unsafe {
20925 let this: &Identity =
20926 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20927 IMimeAddressTable_Impl::GetSender(this, core::mem::transmute_copy(&paddress)).into()
20928 }
20929 }
20930 unsafe extern "system" fn CountTypes<
20931 Identity: IMimeAddressTable_Impl,
20932 const OFFSET: isize,
20933 >(
20934 this: *mut core::ffi::c_void,
20935 dwadrtypes: u32,
20936 pcadrs: *mut u32,
20937 ) -> windows_core::HRESULT {
20938 unsafe {
20939 let this: &Identity =
20940 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20941 IMimeAddressTable_Impl::CountTypes(
20942 this,
20943 core::mem::transmute_copy(&dwadrtypes),
20944 core::mem::transmute_copy(&pcadrs),
20945 )
20946 .into()
20947 }
20948 }
20949 unsafe extern "system" fn GetTypes<
20950 Identity: IMimeAddressTable_Impl,
20951 const OFFSET: isize,
20952 >(
20953 this: *mut core::ffi::c_void,
20954 dwadrtypes: u32,
20955 dwprops: u32,
20956 plist: *mut ADDRESSLIST,
20957 ) -> windows_core::HRESULT {
20958 unsafe {
20959 let this: &Identity =
20960 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20961 IMimeAddressTable_Impl::GetTypes(
20962 this,
20963 core::mem::transmute_copy(&dwadrtypes),
20964 core::mem::transmute_copy(&dwprops),
20965 core::mem::transmute_copy(&plist),
20966 )
20967 .into()
20968 }
20969 }
20970 unsafe extern "system" fn EnumTypes<
20971 Identity: IMimeAddressTable_Impl,
20972 const OFFSET: isize,
20973 >(
20974 this: *mut core::ffi::c_void,
20975 dwadrtypes: u32,
20976 dwprops: u32,
20977 ppenum: *mut *mut core::ffi::c_void,
20978 ) -> windows_core::HRESULT {
20979 unsafe {
20980 let this: &Identity =
20981 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20982 match IMimeAddressTable_Impl::EnumTypes(
20983 this,
20984 core::mem::transmute_copy(&dwadrtypes),
20985 core::mem::transmute_copy(&dwprops),
20986 ) {
20987 Ok(ok__) => {
20988 ppenum.write(core::mem::transmute(ok__));
20989 windows_core::HRESULT(0)
20990 }
20991 Err(err) => err.into(),
20992 }
20993 }
20994 }
20995 unsafe extern "system" fn Delete<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
20996 this: *mut core::ffi::c_void,
20997 haddress: *mut HADDRESS__,
20998 ) -> windows_core::HRESULT {
20999 unsafe {
21000 let this: &Identity =
21001 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21002 IMimeAddressTable_Impl::Delete(this, core::mem::transmute_copy(&haddress)).into()
21003 }
21004 }
21005 unsafe extern "system" fn DeleteTypes<
21006 Identity: IMimeAddressTable_Impl,
21007 const OFFSET: isize,
21008 >(
21009 this: *mut core::ffi::c_void,
21010 dwadrtypes: u32,
21011 ) -> windows_core::HRESULT {
21012 unsafe {
21013 let this: &Identity =
21014 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21015 IMimeAddressTable_Impl::DeleteTypes(this, core::mem::transmute_copy(&dwadrtypes))
21016 .into()
21017 }
21018 }
21019 unsafe extern "system" fn GetFormat<
21020 Identity: IMimeAddressTable_Impl,
21021 const OFFSET: isize,
21022 >(
21023 this: *mut core::ffi::c_void,
21024 dwadrtype: u32,
21025 format: ADDRESSFORMAT,
21026 ppszformat: *mut windows_core::PSTR,
21027 ) -> windows_core::HRESULT {
21028 unsafe {
21029 let this: &Identity =
21030 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21031 IMimeAddressTable_Impl::GetFormat(
21032 this,
21033 core::mem::transmute_copy(&dwadrtype),
21034 core::mem::transmute_copy(&format),
21035 core::mem::transmute_copy(&ppszformat),
21036 )
21037 .into()
21038 }
21039 }
21040 unsafe extern "system" fn AppendRfc822<
21041 Identity: IMimeAddressTable_Impl,
21042 const OFFSET: isize,
21043 >(
21044 this: *mut core::ffi::c_void,
21045 dwadrtype: u32,
21046 ietencoding: ENCODINGTYPE,
21047 pszrfc822adr: windows_core::PCSTR,
21048 ) -> windows_core::HRESULT {
21049 unsafe {
21050 let this: &Identity =
21051 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21052 IMimeAddressTable_Impl::AppendRfc822(
21053 this,
21054 core::mem::transmute_copy(&dwadrtype),
21055 core::mem::transmute_copy(&ietencoding),
21056 core::mem::transmute(&pszrfc822adr),
21057 )
21058 .into()
21059 }
21060 }
21061 unsafe extern "system" fn ParseRfc822<
21062 Identity: IMimeAddressTable_Impl,
21063 const OFFSET: isize,
21064 >(
21065 this: *mut core::ffi::c_void,
21066 dwadrtype: u32,
21067 ietencoding: ENCODINGTYPE,
21068 pszrfc822adr: windows_core::PCSTR,
21069 plist: *mut ADDRESSLIST,
21070 ) -> windows_core::HRESULT {
21071 unsafe {
21072 let this: &Identity =
21073 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21074 IMimeAddressTable_Impl::ParseRfc822(
21075 this,
21076 core::mem::transmute_copy(&dwadrtype),
21077 core::mem::transmute_copy(&ietencoding),
21078 core::mem::transmute(&pszrfc822adr),
21079 core::mem::transmute_copy(&plist),
21080 )
21081 .into()
21082 }
21083 }
21084 unsafe extern "system" fn Clone<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
21085 this: *mut core::ffi::c_void,
21086 pptable: *mut *mut core::ffi::c_void,
21087 ) -> windows_core::HRESULT {
21088 unsafe {
21089 let this: &Identity =
21090 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21091 match IMimeAddressTable_Impl::Clone(this) {
21092 Ok(ok__) => {
21093 pptable.write(core::mem::transmute(ok__));
21094 windows_core::HRESULT(0)
21095 }
21096 Err(err) => err.into(),
21097 }
21098 }
21099 }
21100 unsafe extern "system" fn BindToObject<
21101 Identity: IMimeAddressTable_Impl,
21102 const OFFSET: isize,
21103 >(
21104 this: *mut core::ffi::c_void,
21105 riid: *const windows_core::GUID,
21106 ppvobject: *mut *mut core::ffi::c_void,
21107 ) -> windows_core::HRESULT {
21108 unsafe {
21109 let this: &Identity =
21110 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21111 IMimeAddressTable_Impl::BindToObject(
21112 this,
21113 core::mem::transmute_copy(&riid),
21114 core::mem::transmute_copy(&ppvobject),
21115 )
21116 .into()
21117 }
21118 }
21119 Self {
21120 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21121 Append: Append::<Identity, OFFSET>,
21122 Insert: Insert::<Identity, OFFSET>,
21123 SetProps: SetProps::<Identity, OFFSET>,
21124 GetProps: GetProps::<Identity, OFFSET>,
21125 GetSender: GetSender::<Identity, OFFSET>,
21126 CountTypes: CountTypes::<Identity, OFFSET>,
21127 GetTypes: GetTypes::<Identity, OFFSET>,
21128 EnumTypes: EnumTypes::<Identity, OFFSET>,
21129 Delete: Delete::<Identity, OFFSET>,
21130 DeleteTypes: DeleteTypes::<Identity, OFFSET>,
21131 GetFormat: GetFormat::<Identity, OFFSET>,
21132 AppendRfc822: AppendRfc822::<Identity, OFFSET>,
21133 ParseRfc822: ParseRfc822::<Identity, OFFSET>,
21134 Clone: Clone::<Identity, OFFSET>,
21135 BindToObject: BindToObject::<Identity, OFFSET>,
21136 }
21137 }
21138 pub fn matches(iid: &windows_core::GUID) -> bool {
21139 iid == &<IMimeAddressTable as windows_core::Interface>::IID
21140 }
21141}
21142impl windows_core::RuntimeName for IMimeAddressTable {}
21143windows_core::imp::define_interface!(
21144 IMimeAllocator,
21145 IMimeAllocator_Vtbl,
21146 0xc5588351_7f86_11d0_8252_00c04fd85ab4
21147);
21148impl core::ops::Deref for IMimeAllocator {
21149 type Target = windows::Win32::System::Com::IMalloc;
21150 fn deref(&self) -> &Self::Target {
21151 unsafe { core::mem::transmute(self) }
21152 }
21153}
21154windows_core::imp::interface_hierarchy!(
21155 IMimeAllocator,
21156 windows_core::IUnknown,
21157 windows::Win32::System::Com::IMalloc
21158);
21159impl IMimeAllocator {
21160 pub unsafe fn FreeParamInfoArray(
21161 &self,
21162 cparams: u32,
21163 prgparam: *mut MIMEPARAMINFO,
21164 ffreearray: u8,
21165 ) -> windows_core::Result<()> {
21166 unsafe {
21167 (windows_core::Interface::vtable(self).FreeParamInfoArray)(
21168 windows_core::Interface::as_raw(self),
21169 cparams,
21170 prgparam as _,
21171 ffreearray,
21172 )
21173 .ok()
21174 }
21175 }
21176 pub unsafe fn FreeAddressList(&self, plist: *mut ADDRESSLIST) -> windows_core::Result<()> {
21177 unsafe {
21178 (windows_core::Interface::vtable(self).FreeAddressList)(
21179 windows_core::Interface::as_raw(self),
21180 plist as _,
21181 )
21182 .ok()
21183 }
21184 }
21185 pub unsafe fn FreeAddressProps(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()> {
21186 unsafe {
21187 (windows_core::Interface::vtable(self).FreeAddressProps)(
21188 windows_core::Interface::as_raw(self),
21189 paddress as _,
21190 )
21191 .ok()
21192 }
21193 }
21194 pub unsafe fn ReleaseObjects(
21195 &self,
21196 cobjects: u32,
21197 prgpunknown: *mut Option<windows_core::IUnknown>,
21198 ffreearray: u8,
21199 ) -> windows_core::Result<()> {
21200 unsafe {
21201 (windows_core::Interface::vtable(self).ReleaseObjects)(
21202 windows_core::Interface::as_raw(self),
21203 cobjects,
21204 core::mem::transmute(prgpunknown),
21205 ffreearray,
21206 )
21207 .ok()
21208 }
21209 }
21210 pub unsafe fn FreeEnumHeaderRowArray(
21211 &self,
21212 crows: u32,
21213 prgrow: *mut ENUMHEADERROW,
21214 ffreearray: u8,
21215 ) -> windows_core::Result<()> {
21216 unsafe {
21217 (windows_core::Interface::vtable(self).FreeEnumHeaderRowArray)(
21218 windows_core::Interface::as_raw(self),
21219 crows,
21220 prgrow as _,
21221 ffreearray,
21222 )
21223 .ok()
21224 }
21225 }
21226 pub unsafe fn FreeEnumPropertyArray(
21227 &self,
21228 cprops: u32,
21229 prgprop: *mut ENUMPROPERTY,
21230 ffreearray: u8,
21231 ) -> windows_core::Result<()> {
21232 unsafe {
21233 (windows_core::Interface::vtable(self).FreeEnumPropertyArray)(
21234 windows_core::Interface::as_raw(self),
21235 cprops,
21236 prgprop as _,
21237 ffreearray,
21238 )
21239 .ok()
21240 }
21241 }
21242 pub unsafe fn FreeThumbprint(
21243 &self,
21244 pthumbprint: *mut windows::Win32::System::Com::BLOB,
21245 ) -> windows_core::Result<()> {
21246 unsafe {
21247 (windows_core::Interface::vtable(self).FreeThumbprint)(
21248 windows_core::Interface::as_raw(self),
21249 pthumbprint as _,
21250 )
21251 .ok()
21252 }
21253 }
21254 pub unsafe fn PropVariantClear(
21255 &self,
21256 pprop: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21257 ) -> windows_core::Result<()> {
21258 unsafe {
21259 (windows_core::Interface::vtable(self).PropVariantClear)(
21260 windows_core::Interface::as_raw(self),
21261 core::mem::transmute(pprop),
21262 )
21263 .ok()
21264 }
21265 }
21266}
21267#[repr(C)]
21268pub struct IMimeAllocator_Vtbl {
21269 pub base__: windows::Win32::System::Com::IMalloc_Vtbl,
21270 pub FreeParamInfoArray: unsafe extern "system" fn(
21271 *mut core::ffi::c_void,
21272 u32,
21273 *mut MIMEPARAMINFO,
21274 u8,
21275 ) -> windows_core::HRESULT,
21276 pub FreeAddressList: unsafe extern "system" fn(
21277 *mut core::ffi::c_void,
21278 *mut ADDRESSLIST,
21279 ) -> windows_core::HRESULT,
21280 pub FreeAddressProps: unsafe extern "system" fn(
21281 *mut core::ffi::c_void,
21282 *mut ADDRESSPROPS,
21283 ) -> windows_core::HRESULT,
21284 pub ReleaseObjects: unsafe extern "system" fn(
21285 *mut core::ffi::c_void,
21286 u32,
21287 *mut *mut core::ffi::c_void,
21288 u8,
21289 ) -> windows_core::HRESULT,
21290 pub FreeEnumHeaderRowArray: unsafe extern "system" fn(
21291 *mut core::ffi::c_void,
21292 u32,
21293 *mut ENUMHEADERROW,
21294 u8,
21295 ) -> windows_core::HRESULT,
21296 pub FreeEnumPropertyArray: unsafe extern "system" fn(
21297 *mut core::ffi::c_void,
21298 u32,
21299 *mut ENUMPROPERTY,
21300 u8,
21301 ) -> windows_core::HRESULT,
21302 pub FreeThumbprint: unsafe extern "system" fn(
21303 *mut core::ffi::c_void,
21304 *mut windows::Win32::System::Com::BLOB,
21305 ) -> windows_core::HRESULT,
21306 pub PropVariantClear: unsafe extern "system" fn(
21307 *mut core::ffi::c_void,
21308 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21309 ) -> windows_core::HRESULT,
21310}
21311pub trait IMimeAllocator_Impl: windows::Win32::System::Com::IMalloc_Impl {
21312 fn FreeParamInfoArray(
21313 &self,
21314 cparams: u32,
21315 prgparam: *mut MIMEPARAMINFO,
21316 ffreearray: u8,
21317 ) -> windows_core::Result<()>;
21318 fn FreeAddressList(&self, plist: *mut ADDRESSLIST) -> windows_core::Result<()>;
21319 fn FreeAddressProps(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()>;
21320 fn ReleaseObjects(
21321 &self,
21322 cobjects: u32,
21323 prgpunknown: windows_core::OutRef<'_, windows_core::IUnknown>,
21324 ffreearray: u8,
21325 ) -> windows_core::Result<()>;
21326 fn FreeEnumHeaderRowArray(
21327 &self,
21328 crows: u32,
21329 prgrow: *mut ENUMHEADERROW,
21330 ffreearray: u8,
21331 ) -> windows_core::Result<()>;
21332 fn FreeEnumPropertyArray(
21333 &self,
21334 cprops: u32,
21335 prgprop: *mut ENUMPROPERTY,
21336 ffreearray: u8,
21337 ) -> windows_core::Result<()>;
21338 fn FreeThumbprint(
21339 &self,
21340 pthumbprint: *mut windows::Win32::System::Com::BLOB,
21341 ) -> windows_core::Result<()>;
21342 fn PropVariantClear(
21343 &self,
21344 pprop: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21345 ) -> windows_core::Result<()>;
21346}
21347impl IMimeAllocator_Vtbl {
21348 pub const fn new<Identity: IMimeAllocator_Impl, const OFFSET: isize>() -> Self {
21349 unsafe extern "system" fn FreeParamInfoArray<
21350 Identity: IMimeAllocator_Impl,
21351 const OFFSET: isize,
21352 >(
21353 this: *mut core::ffi::c_void,
21354 cparams: u32,
21355 prgparam: *mut MIMEPARAMINFO,
21356 ffreearray: u8,
21357 ) -> windows_core::HRESULT {
21358 unsafe {
21359 let this: &Identity =
21360 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21361 IMimeAllocator_Impl::FreeParamInfoArray(
21362 this,
21363 core::mem::transmute_copy(&cparams),
21364 core::mem::transmute_copy(&prgparam),
21365 core::mem::transmute_copy(&ffreearray),
21366 )
21367 .into()
21368 }
21369 }
21370 unsafe extern "system" fn FreeAddressList<
21371 Identity: IMimeAllocator_Impl,
21372 const OFFSET: isize,
21373 >(
21374 this: *mut core::ffi::c_void,
21375 plist: *mut ADDRESSLIST,
21376 ) -> windows_core::HRESULT {
21377 unsafe {
21378 let this: &Identity =
21379 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21380 IMimeAllocator_Impl::FreeAddressList(this, core::mem::transmute_copy(&plist)).into()
21381 }
21382 }
21383 unsafe extern "system" fn FreeAddressProps<
21384 Identity: IMimeAllocator_Impl,
21385 const OFFSET: isize,
21386 >(
21387 this: *mut core::ffi::c_void,
21388 paddress: *mut ADDRESSPROPS,
21389 ) -> windows_core::HRESULT {
21390 unsafe {
21391 let this: &Identity =
21392 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21393 IMimeAllocator_Impl::FreeAddressProps(this, core::mem::transmute_copy(&paddress))
21394 .into()
21395 }
21396 }
21397 unsafe extern "system" fn ReleaseObjects<
21398 Identity: IMimeAllocator_Impl,
21399 const OFFSET: isize,
21400 >(
21401 this: *mut core::ffi::c_void,
21402 cobjects: u32,
21403 prgpunknown: *mut *mut core::ffi::c_void,
21404 ffreearray: u8,
21405 ) -> windows_core::HRESULT {
21406 unsafe {
21407 let this: &Identity =
21408 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21409 IMimeAllocator_Impl::ReleaseObjects(
21410 this,
21411 core::mem::transmute_copy(&cobjects),
21412 core::mem::transmute_copy(&prgpunknown),
21413 core::mem::transmute_copy(&ffreearray),
21414 )
21415 .into()
21416 }
21417 }
21418 unsafe extern "system" fn FreeEnumHeaderRowArray<
21419 Identity: IMimeAllocator_Impl,
21420 const OFFSET: isize,
21421 >(
21422 this: *mut core::ffi::c_void,
21423 crows: u32,
21424 prgrow: *mut ENUMHEADERROW,
21425 ffreearray: u8,
21426 ) -> windows_core::HRESULT {
21427 unsafe {
21428 let this: &Identity =
21429 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21430 IMimeAllocator_Impl::FreeEnumHeaderRowArray(
21431 this,
21432 core::mem::transmute_copy(&crows),
21433 core::mem::transmute_copy(&prgrow),
21434 core::mem::transmute_copy(&ffreearray),
21435 )
21436 .into()
21437 }
21438 }
21439 unsafe extern "system" fn FreeEnumPropertyArray<
21440 Identity: IMimeAllocator_Impl,
21441 const OFFSET: isize,
21442 >(
21443 this: *mut core::ffi::c_void,
21444 cprops: u32,
21445 prgprop: *mut ENUMPROPERTY,
21446 ffreearray: u8,
21447 ) -> windows_core::HRESULT {
21448 unsafe {
21449 let this: &Identity =
21450 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21451 IMimeAllocator_Impl::FreeEnumPropertyArray(
21452 this,
21453 core::mem::transmute_copy(&cprops),
21454 core::mem::transmute_copy(&prgprop),
21455 core::mem::transmute_copy(&ffreearray),
21456 )
21457 .into()
21458 }
21459 }
21460 unsafe extern "system" fn FreeThumbprint<
21461 Identity: IMimeAllocator_Impl,
21462 const OFFSET: isize,
21463 >(
21464 this: *mut core::ffi::c_void,
21465 pthumbprint: *mut windows::Win32::System::Com::BLOB,
21466 ) -> windows_core::HRESULT {
21467 unsafe {
21468 let this: &Identity =
21469 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21470 IMimeAllocator_Impl::FreeThumbprint(this, core::mem::transmute_copy(&pthumbprint))
21471 .into()
21472 }
21473 }
21474 unsafe extern "system" fn PropVariantClear<
21475 Identity: IMimeAllocator_Impl,
21476 const OFFSET: isize,
21477 >(
21478 this: *mut core::ffi::c_void,
21479 pprop: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21480 ) -> windows_core::HRESULT {
21481 unsafe {
21482 let this: &Identity =
21483 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21484 IMimeAllocator_Impl::PropVariantClear(this, core::mem::transmute_copy(&pprop))
21485 .into()
21486 }
21487 }
21488 Self {
21489 base__: windows::Win32::System::Com::IMalloc_Vtbl::new::<Identity, OFFSET>(),
21490 FreeParamInfoArray: FreeParamInfoArray::<Identity, OFFSET>,
21491 FreeAddressList: FreeAddressList::<Identity, OFFSET>,
21492 FreeAddressProps: FreeAddressProps::<Identity, OFFSET>,
21493 ReleaseObjects: ReleaseObjects::<Identity, OFFSET>,
21494 FreeEnumHeaderRowArray: FreeEnumHeaderRowArray::<Identity, OFFSET>,
21495 FreeEnumPropertyArray: FreeEnumPropertyArray::<Identity, OFFSET>,
21496 FreeThumbprint: FreeThumbprint::<Identity, OFFSET>,
21497 PropVariantClear: PropVariantClear::<Identity, OFFSET>,
21498 }
21499 }
21500 pub fn matches(iid: &windows_core::GUID) -> bool {
21501 iid == &<IMimeAllocator as windows_core::Interface>::IID
21502 || iid == &<windows::Win32::System::Com::IMalloc as windows_core::Interface>::IID
21503 }
21504}
21505impl windows_core::RuntimeName for IMimeAllocator {}
21506windows_core::imp::define_interface!(
21507 IMimeBody,
21508 IMimeBody_Vtbl,
21509 0xc558834c_7f86_11d0_8252_00c04fd85ab4
21510);
21511impl core::ops::Deref for IMimeBody {
21512 type Target = IMimePropertySet;
21513 fn deref(&self) -> &Self::Target {
21514 unsafe { core::mem::transmute(self) }
21515 }
21516}
21517windows_core::imp::interface_hierarchy!(
21518 IMimeBody,
21519 windows_core::IUnknown,
21520 windows::Win32::System::Com::IPersist,
21521 windows::Win32::System::Com::IPersistStreamInit,
21522 IMimePropertySet
21523);
21524impl IMimeBody {
21525 pub unsafe fn IsType(&self, bodytype: IMSGBODYTYPE) -> windows_core::Result<()> {
21526 unsafe {
21527 (windows_core::Interface::vtable(self).IsType)(
21528 windows_core::Interface::as_raw(self),
21529 bodytype,
21530 )
21531 .ok()
21532 }
21533 }
21534 pub unsafe fn SetDisplayName<P0>(&self, pszdisplay: P0) -> windows_core::Result<()>
21535 where
21536 P0: windows_core::Param<windows_core::PCSTR>,
21537 {
21538 unsafe {
21539 (windows_core::Interface::vtable(self).SetDisplayName)(
21540 windows_core::Interface::as_raw(self),
21541 pszdisplay.param().abi(),
21542 )
21543 .ok()
21544 }
21545 }
21546 pub unsafe fn GetDisplayName(
21547 &self,
21548 ppszdisplay: *mut windows_core::PSTR,
21549 ) -> windows_core::Result<()> {
21550 unsafe {
21551 (windows_core::Interface::vtable(self).GetDisplayName)(
21552 windows_core::Interface::as_raw(self),
21553 ppszdisplay as _,
21554 )
21555 .ok()
21556 }
21557 }
21558 pub unsafe fn GetOffsets(&self, poffsets: *mut BODYOFFSETS) -> windows_core::Result<()> {
21559 unsafe {
21560 (windows_core::Interface::vtable(self).GetOffsets)(
21561 windows_core::Interface::as_raw(self),
21562 poffsets as _,
21563 )
21564 .ok()
21565 }
21566 }
21567 pub unsafe fn GetCurrentEncoding(
21568 &self,
21569 pietencoding: *mut ENCODINGTYPE,
21570 ) -> windows_core::Result<()> {
21571 unsafe {
21572 (windows_core::Interface::vtable(self).GetCurrentEncoding)(
21573 windows_core::Interface::as_raw(self),
21574 pietencoding as _,
21575 )
21576 .ok()
21577 }
21578 }
21579 pub unsafe fn SetCurrentEncoding(&self, ietencoding: ENCODINGTYPE) -> windows_core::Result<()> {
21580 unsafe {
21581 (windows_core::Interface::vtable(self).SetCurrentEncoding)(
21582 windows_core::Interface::as_raw(self),
21583 ietencoding,
21584 )
21585 .ok()
21586 }
21587 }
21588 pub unsafe fn GetEstimatedSize(
21589 &self,
21590 ietencoding: ENCODINGTYPE,
21591 pcbsize: *mut u32,
21592 ) -> windows_core::Result<()> {
21593 unsafe {
21594 (windows_core::Interface::vtable(self).GetEstimatedSize)(
21595 windows_core::Interface::as_raw(self),
21596 ietencoding,
21597 pcbsize as _,
21598 )
21599 .ok()
21600 }
21601 }
21602 pub unsafe fn GetDataHere<P1>(
21603 &self,
21604 ietencoding: ENCODINGTYPE,
21605 pstream: P1,
21606 ) -> windows_core::Result<()>
21607 where
21608 P1: windows_core::Param<windows::Win32::System::Com::IStream>,
21609 {
21610 unsafe {
21611 (windows_core::Interface::vtable(self).GetDataHere)(
21612 windows_core::Interface::as_raw(self),
21613 ietencoding,
21614 pstream.param().abi(),
21615 )
21616 .ok()
21617 }
21618 }
21619 pub unsafe fn GetData(
21620 &self,
21621 ietencoding: ENCODINGTYPE,
21622 ) -> windows_core::Result<windows::Win32::System::Com::IStream> {
21623 unsafe {
21624 let mut result__ = core::mem::zeroed();
21625 (windows_core::Interface::vtable(self).GetData)(
21626 windows_core::Interface::as_raw(self),
21627 ietencoding,
21628 &mut result__,
21629 )
21630 .and_then(|| windows_core::Type::from_abi(result__))
21631 }
21632 }
21633 pub unsafe fn SetData<P1, P2>(
21634 &self,
21635 ietencoding: ENCODINGTYPE,
21636 pszpritype: P1,
21637 pszsubtype: P2,
21638 riid: *const windows_core::GUID,
21639 pvobject: *mut core::ffi::c_void,
21640 ) -> windows_core::Result<()>
21641 where
21642 P1: windows_core::Param<windows_core::PCSTR>,
21643 P2: windows_core::Param<windows_core::PCSTR>,
21644 {
21645 unsafe {
21646 (windows_core::Interface::vtable(self).SetData)(
21647 windows_core::Interface::as_raw(self),
21648 ietencoding,
21649 pszpritype.param().abi(),
21650 pszsubtype.param().abi(),
21651 riid,
21652 pvobject as _,
21653 )
21654 .ok()
21655 }
21656 }
21657 pub unsafe fn EmptyData(&self) -> windows_core::Result<()> {
21658 unsafe {
21659 (windows_core::Interface::vtable(self).EmptyData)(windows_core::Interface::as_raw(self))
21660 .ok()
21661 }
21662 }
21663 pub unsafe fn CopyTo<P0>(&self, pbody: P0) -> windows_core::Result<()>
21664 where
21665 P0: windows_core::Param<IMimeBody>,
21666 {
21667 unsafe {
21668 (windows_core::Interface::vtable(self).CopyTo)(
21669 windows_core::Interface::as_raw(self),
21670 pbody.param().abi(),
21671 )
21672 .ok()
21673 }
21674 }
21675 pub unsafe fn GetTransmitInfo(
21676 &self,
21677 ptransmitinfo: *mut TRANSMITINFO,
21678 ) -> windows_core::Result<()> {
21679 unsafe {
21680 (windows_core::Interface::vtable(self).GetTransmitInfo)(
21681 windows_core::Interface::as_raw(self),
21682 ptransmitinfo as _,
21683 )
21684 .ok()
21685 }
21686 }
21687 pub unsafe fn SaveToFile<P1>(
21688 &self,
21689 ietencoding: ENCODINGTYPE,
21690 pszfilepath: P1,
21691 ) -> windows_core::Result<()>
21692 where
21693 P1: windows_core::Param<windows_core::PCSTR>,
21694 {
21695 unsafe {
21696 (windows_core::Interface::vtable(self).SaveToFile)(
21697 windows_core::Interface::as_raw(self),
21698 ietencoding,
21699 pszfilepath.param().abi(),
21700 )
21701 .ok()
21702 }
21703 }
21704 pub unsafe fn GetHandle(&self, phbody: *mut *mut HBODY__) -> windows_core::Result<()> {
21705 unsafe {
21706 (windows_core::Interface::vtable(self).GetHandle)(
21707 windows_core::Interface::as_raw(self),
21708 phbody as _,
21709 )
21710 .ok()
21711 }
21712 }
21713}
21714#[repr(C)]
21715pub struct IMimeBody_Vtbl {
21716 pub base__: IMimePropertySet_Vtbl,
21717 pub IsType:
21718 unsafe extern "system" fn(*mut core::ffi::c_void, IMSGBODYTYPE) -> windows_core::HRESULT,
21719 pub SetDisplayName: unsafe extern "system" fn(
21720 *mut core::ffi::c_void,
21721 windows_core::PCSTR,
21722 ) -> windows_core::HRESULT,
21723 pub GetDisplayName: unsafe extern "system" fn(
21724 *mut core::ffi::c_void,
21725 *mut windows_core::PSTR,
21726 ) -> windows_core::HRESULT,
21727 pub GetOffsets: unsafe extern "system" fn(
21728 *mut core::ffi::c_void,
21729 *mut BODYOFFSETS,
21730 ) -> windows_core::HRESULT,
21731 pub GetCurrentEncoding: unsafe extern "system" fn(
21732 *mut core::ffi::c_void,
21733 *mut ENCODINGTYPE,
21734 ) -> windows_core::HRESULT,
21735 pub SetCurrentEncoding:
21736 unsafe extern "system" fn(*mut core::ffi::c_void, ENCODINGTYPE) -> windows_core::HRESULT,
21737 pub GetEstimatedSize: unsafe extern "system" fn(
21738 *mut core::ffi::c_void,
21739 ENCODINGTYPE,
21740 *mut u32,
21741 ) -> windows_core::HRESULT,
21742 pub GetDataHere: unsafe extern "system" fn(
21743 *mut core::ffi::c_void,
21744 ENCODINGTYPE,
21745 *mut core::ffi::c_void,
21746 ) -> windows_core::HRESULT,
21747 pub GetData: unsafe extern "system" fn(
21748 *mut core::ffi::c_void,
21749 ENCODINGTYPE,
21750 *mut *mut core::ffi::c_void,
21751 ) -> windows_core::HRESULT,
21752 pub SetData: unsafe extern "system" fn(
21753 *mut core::ffi::c_void,
21754 ENCODINGTYPE,
21755 windows_core::PCSTR,
21756 windows_core::PCSTR,
21757 *const windows_core::GUID,
21758 *mut core::ffi::c_void,
21759 ) -> windows_core::HRESULT,
21760 pub EmptyData: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
21761 pub CopyTo: unsafe extern "system" fn(
21762 *mut core::ffi::c_void,
21763 *mut core::ffi::c_void,
21764 ) -> windows_core::HRESULT,
21765 pub GetTransmitInfo: unsafe extern "system" fn(
21766 *mut core::ffi::c_void,
21767 *mut TRANSMITINFO,
21768 ) -> windows_core::HRESULT,
21769 pub SaveToFile: unsafe extern "system" fn(
21770 *mut core::ffi::c_void,
21771 ENCODINGTYPE,
21772 windows_core::PCSTR,
21773 ) -> windows_core::HRESULT,
21774 pub GetHandle: unsafe extern "system" fn(
21775 *mut core::ffi::c_void,
21776 *mut *mut HBODY__,
21777 ) -> windows_core::HRESULT,
21778}
21779pub trait IMimeBody_Impl: IMimePropertySet_Impl {
21780 fn IsType(&self, bodytype: IMSGBODYTYPE) -> windows_core::Result<()>;
21781 fn SetDisplayName(&self, pszdisplay: &windows_core::PCSTR) -> windows_core::Result<()>;
21782 fn GetDisplayName(&self, ppszdisplay: *mut windows_core::PSTR) -> windows_core::Result<()>;
21783 fn GetOffsets(&self, poffsets: *mut BODYOFFSETS) -> windows_core::Result<()>;
21784 fn GetCurrentEncoding(&self, pietencoding: *mut ENCODINGTYPE) -> windows_core::Result<()>;
21785 fn SetCurrentEncoding(&self, ietencoding: ENCODINGTYPE) -> windows_core::Result<()>;
21786 fn GetEstimatedSize(
21787 &self,
21788 ietencoding: ENCODINGTYPE,
21789 pcbsize: *mut u32,
21790 ) -> windows_core::Result<()>;
21791 fn GetDataHere(
21792 &self,
21793 ietencoding: ENCODINGTYPE,
21794 pstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
21795 ) -> windows_core::Result<()>;
21796 fn GetData(
21797 &self,
21798 ietencoding: ENCODINGTYPE,
21799 ) -> windows_core::Result<windows::Win32::System::Com::IStream>;
21800 fn SetData(
21801 &self,
21802 ietencoding: ENCODINGTYPE,
21803 pszpritype: &windows_core::PCSTR,
21804 pszsubtype: &windows_core::PCSTR,
21805 riid: *const windows_core::GUID,
21806 pvobject: *mut core::ffi::c_void,
21807 ) -> windows_core::Result<()>;
21808 fn EmptyData(&self) -> windows_core::Result<()>;
21809 fn CopyTo(&self, pbody: windows_core::Ref<'_, IMimeBody>) -> windows_core::Result<()>;
21810 fn GetTransmitInfo(&self, ptransmitinfo: *mut TRANSMITINFO) -> windows_core::Result<()>;
21811 fn SaveToFile(
21812 &self,
21813 ietencoding: ENCODINGTYPE,
21814 pszfilepath: &windows_core::PCSTR,
21815 ) -> windows_core::Result<()>;
21816 fn GetHandle(&self, phbody: *mut *mut HBODY__) -> windows_core::Result<()>;
21817}
21818impl IMimeBody_Vtbl {
21819 pub const fn new<Identity: IMimeBody_Impl, const OFFSET: isize>() -> Self {
21820 unsafe extern "system" fn IsType<Identity: IMimeBody_Impl, const OFFSET: isize>(
21821 this: *mut core::ffi::c_void,
21822 bodytype: IMSGBODYTYPE,
21823 ) -> windows_core::HRESULT {
21824 unsafe {
21825 let this: &Identity =
21826 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21827 IMimeBody_Impl::IsType(this, core::mem::transmute_copy(&bodytype)).into()
21828 }
21829 }
21830 unsafe extern "system" fn SetDisplayName<Identity: IMimeBody_Impl, const OFFSET: isize>(
21831 this: *mut core::ffi::c_void,
21832 pszdisplay: windows_core::PCSTR,
21833 ) -> windows_core::HRESULT {
21834 unsafe {
21835 let this: &Identity =
21836 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21837 IMimeBody_Impl::SetDisplayName(this, core::mem::transmute(&pszdisplay)).into()
21838 }
21839 }
21840 unsafe extern "system" fn GetDisplayName<Identity: IMimeBody_Impl, const OFFSET: isize>(
21841 this: *mut core::ffi::c_void,
21842 ppszdisplay: *mut windows_core::PSTR,
21843 ) -> windows_core::HRESULT {
21844 unsafe {
21845 let this: &Identity =
21846 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21847 IMimeBody_Impl::GetDisplayName(this, core::mem::transmute_copy(&ppszdisplay)).into()
21848 }
21849 }
21850 unsafe extern "system" fn GetOffsets<Identity: IMimeBody_Impl, const OFFSET: isize>(
21851 this: *mut core::ffi::c_void,
21852 poffsets: *mut BODYOFFSETS,
21853 ) -> windows_core::HRESULT {
21854 unsafe {
21855 let this: &Identity =
21856 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21857 IMimeBody_Impl::GetOffsets(this, core::mem::transmute_copy(&poffsets)).into()
21858 }
21859 }
21860 unsafe extern "system" fn GetCurrentEncoding<
21861 Identity: IMimeBody_Impl,
21862 const OFFSET: isize,
21863 >(
21864 this: *mut core::ffi::c_void,
21865 pietencoding: *mut ENCODINGTYPE,
21866 ) -> windows_core::HRESULT {
21867 unsafe {
21868 let this: &Identity =
21869 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21870 IMimeBody_Impl::GetCurrentEncoding(this, core::mem::transmute_copy(&pietencoding))
21871 .into()
21872 }
21873 }
21874 unsafe extern "system" fn SetCurrentEncoding<
21875 Identity: IMimeBody_Impl,
21876 const OFFSET: isize,
21877 >(
21878 this: *mut core::ffi::c_void,
21879 ietencoding: ENCODINGTYPE,
21880 ) -> windows_core::HRESULT {
21881 unsafe {
21882 let this: &Identity =
21883 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21884 IMimeBody_Impl::SetCurrentEncoding(this, core::mem::transmute_copy(&ietencoding))
21885 .into()
21886 }
21887 }
21888 unsafe extern "system" fn GetEstimatedSize<
21889 Identity: IMimeBody_Impl,
21890 const OFFSET: isize,
21891 >(
21892 this: *mut core::ffi::c_void,
21893 ietencoding: ENCODINGTYPE,
21894 pcbsize: *mut u32,
21895 ) -> windows_core::HRESULT {
21896 unsafe {
21897 let this: &Identity =
21898 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21899 IMimeBody_Impl::GetEstimatedSize(
21900 this,
21901 core::mem::transmute_copy(&ietencoding),
21902 core::mem::transmute_copy(&pcbsize),
21903 )
21904 .into()
21905 }
21906 }
21907 unsafe extern "system" fn GetDataHere<Identity: IMimeBody_Impl, const OFFSET: isize>(
21908 this: *mut core::ffi::c_void,
21909 ietencoding: ENCODINGTYPE,
21910 pstream: *mut core::ffi::c_void,
21911 ) -> windows_core::HRESULT {
21912 unsafe {
21913 let this: &Identity =
21914 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21915 IMimeBody_Impl::GetDataHere(
21916 this,
21917 core::mem::transmute_copy(&ietencoding),
21918 core::mem::transmute_copy(&pstream),
21919 )
21920 .into()
21921 }
21922 }
21923 unsafe extern "system" fn GetData<Identity: IMimeBody_Impl, const OFFSET: isize>(
21924 this: *mut core::ffi::c_void,
21925 ietencoding: ENCODINGTYPE,
21926 ppstream: *mut *mut core::ffi::c_void,
21927 ) -> windows_core::HRESULT {
21928 unsafe {
21929 let this: &Identity =
21930 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21931 match IMimeBody_Impl::GetData(this, core::mem::transmute_copy(&ietencoding)) {
21932 Ok(ok__) => {
21933 ppstream.write(core::mem::transmute(ok__));
21934 windows_core::HRESULT(0)
21935 }
21936 Err(err) => err.into(),
21937 }
21938 }
21939 }
21940 unsafe extern "system" fn SetData<Identity: IMimeBody_Impl, const OFFSET: isize>(
21941 this: *mut core::ffi::c_void,
21942 ietencoding: ENCODINGTYPE,
21943 pszpritype: windows_core::PCSTR,
21944 pszsubtype: windows_core::PCSTR,
21945 riid: *const windows_core::GUID,
21946 pvobject: *mut core::ffi::c_void,
21947 ) -> windows_core::HRESULT {
21948 unsafe {
21949 let this: &Identity =
21950 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21951 IMimeBody_Impl::SetData(
21952 this,
21953 core::mem::transmute_copy(&ietencoding),
21954 core::mem::transmute(&pszpritype),
21955 core::mem::transmute(&pszsubtype),
21956 core::mem::transmute_copy(&riid),
21957 core::mem::transmute_copy(&pvobject),
21958 )
21959 .into()
21960 }
21961 }
21962 unsafe extern "system" fn EmptyData<Identity: IMimeBody_Impl, const OFFSET: isize>(
21963 this: *mut core::ffi::c_void,
21964 ) -> windows_core::HRESULT {
21965 unsafe {
21966 let this: &Identity =
21967 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21968 IMimeBody_Impl::EmptyData(this).into()
21969 }
21970 }
21971 unsafe extern "system" fn CopyTo<Identity: IMimeBody_Impl, const OFFSET: isize>(
21972 this: *mut core::ffi::c_void,
21973 pbody: *mut core::ffi::c_void,
21974 ) -> windows_core::HRESULT {
21975 unsafe {
21976 let this: &Identity =
21977 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21978 IMimeBody_Impl::CopyTo(this, core::mem::transmute_copy(&pbody)).into()
21979 }
21980 }
21981 unsafe extern "system" fn GetTransmitInfo<Identity: IMimeBody_Impl, const OFFSET: isize>(
21982 this: *mut core::ffi::c_void,
21983 ptransmitinfo: *mut TRANSMITINFO,
21984 ) -> windows_core::HRESULT {
21985 unsafe {
21986 let this: &Identity =
21987 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21988 IMimeBody_Impl::GetTransmitInfo(this, core::mem::transmute_copy(&ptransmitinfo))
21989 .into()
21990 }
21991 }
21992 unsafe extern "system" fn SaveToFile<Identity: IMimeBody_Impl, const OFFSET: isize>(
21993 this: *mut core::ffi::c_void,
21994 ietencoding: ENCODINGTYPE,
21995 pszfilepath: windows_core::PCSTR,
21996 ) -> windows_core::HRESULT {
21997 unsafe {
21998 let this: &Identity =
21999 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22000 IMimeBody_Impl::SaveToFile(
22001 this,
22002 core::mem::transmute_copy(&ietencoding),
22003 core::mem::transmute(&pszfilepath),
22004 )
22005 .into()
22006 }
22007 }
22008 unsafe extern "system" fn GetHandle<Identity: IMimeBody_Impl, const OFFSET: isize>(
22009 this: *mut core::ffi::c_void,
22010 phbody: *mut *mut HBODY__,
22011 ) -> windows_core::HRESULT {
22012 unsafe {
22013 let this: &Identity =
22014 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22015 IMimeBody_Impl::GetHandle(this, core::mem::transmute_copy(&phbody)).into()
22016 }
22017 }
22018 Self {
22019 base__: IMimePropertySet_Vtbl::new::<Identity, OFFSET>(),
22020 IsType: IsType::<Identity, OFFSET>,
22021 SetDisplayName: SetDisplayName::<Identity, OFFSET>,
22022 GetDisplayName: GetDisplayName::<Identity, OFFSET>,
22023 GetOffsets: GetOffsets::<Identity, OFFSET>,
22024 GetCurrentEncoding: GetCurrentEncoding::<Identity, OFFSET>,
22025 SetCurrentEncoding: SetCurrentEncoding::<Identity, OFFSET>,
22026 GetEstimatedSize: GetEstimatedSize::<Identity, OFFSET>,
22027 GetDataHere: GetDataHere::<Identity, OFFSET>,
22028 GetData: GetData::<Identity, OFFSET>,
22029 SetData: SetData::<Identity, OFFSET>,
22030 EmptyData: EmptyData::<Identity, OFFSET>,
22031 CopyTo: CopyTo::<Identity, OFFSET>,
22032 GetTransmitInfo: GetTransmitInfo::<Identity, OFFSET>,
22033 SaveToFile: SaveToFile::<Identity, OFFSET>,
22034 GetHandle: GetHandle::<Identity, OFFSET>,
22035 }
22036 }
22037 pub fn matches(iid: &windows_core::GUID) -> bool {
22038 iid == & < IMimeBody as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersist as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersistStreamInit as windows_core::Interface >::IID || iid == & < IMimePropertySet as windows_core::Interface >::IID
22039 }
22040}
22041impl windows_core::RuntimeName for IMimeBody {}
22042windows_core::imp::define_interface!(
22043 IMimeEditTag,
22044 IMimeEditTag_Vtbl,
22045 0x70183210_7b36_11d2_8c12_00c04fa31009
22046);
22047windows_core::imp::interface_hierarchy!(IMimeEditTag, windows_core::IUnknown);
22048impl IMimeEditTag {
22049 pub unsafe fn GetSrc(&self, pbstr: *mut windows_core::BSTR) -> windows_core::Result<()> {
22050 unsafe {
22051 (windows_core::Interface::vtable(self).GetSrc)(
22052 windows_core::Interface::as_raw(self),
22053 core::mem::transmute(pbstr),
22054 )
22055 .ok()
22056 }
22057 }
22058 pub unsafe fn SetSrc(&self, bstr: &windows_core::BSTR) -> windows_core::Result<()> {
22059 unsafe {
22060 (windows_core::Interface::vtable(self).SetSrc)(
22061 windows_core::Interface::as_raw(self),
22062 core::mem::transmute_copy(bstr),
22063 )
22064 .ok()
22065 }
22066 }
22067 pub unsafe fn GetDest(&self, pbstr: *mut windows_core::BSTR) -> windows_core::Result<()> {
22068 unsafe {
22069 (windows_core::Interface::vtable(self).GetDest)(
22070 windows_core::Interface::as_raw(self),
22071 core::mem::transmute(pbstr),
22072 )
22073 .ok()
22074 }
22075 }
22076 pub unsafe fn SetDest(&self, bstr: &windows_core::BSTR) -> windows_core::Result<()> {
22077 unsafe {
22078 (windows_core::Interface::vtable(self).SetDest)(
22079 windows_core::Interface::as_raw(self),
22080 core::mem::transmute_copy(bstr),
22081 )
22082 .ok()
22083 }
22084 }
22085 pub unsafe fn OnPreSave(&self) -> windows_core::Result<()> {
22086 unsafe {
22087 (windows_core::Interface::vtable(self).OnPreSave)(windows_core::Interface::as_raw(self))
22088 .ok()
22089 }
22090 }
22091 pub unsafe fn OnPostSave(&self) -> windows_core::Result<()> {
22092 unsafe {
22093 (windows_core::Interface::vtable(self).OnPostSave)(windows_core::Interface::as_raw(
22094 self,
22095 ))
22096 .ok()
22097 }
22098 }
22099 pub unsafe fn CanPackage(&self) -> windows_core::Result<()> {
22100 unsafe {
22101 (windows_core::Interface::vtable(self).CanPackage)(windows_core::Interface::as_raw(
22102 self,
22103 ))
22104 .ok()
22105 }
22106 }
22107 pub unsafe fn IsValidMimeType<P0>(&self, psztypew: P0) -> windows_core::Result<()>
22108 where
22109 P0: windows_core::Param<windows_core::PCWSTR>,
22110 {
22111 unsafe {
22112 (windows_core::Interface::vtable(self).IsValidMimeType)(
22113 windows_core::Interface::as_raw(self),
22114 psztypew.param().abi(),
22115 )
22116 .ok()
22117 }
22118 }
22119}
22120#[repr(C)]
22121pub struct IMimeEditTag_Vtbl {
22122 pub base__: windows_core::IUnknown_Vtbl,
22123 pub GetSrc: unsafe extern "system" fn(
22124 *mut core::ffi::c_void,
22125 *mut *mut core::ffi::c_void,
22126 ) -> windows_core::HRESULT,
22127 pub SetSrc: unsafe extern "system" fn(
22128 *mut core::ffi::c_void,
22129 *mut core::ffi::c_void,
22130 ) -> windows_core::HRESULT,
22131 pub GetDest: unsafe extern "system" fn(
22132 *mut core::ffi::c_void,
22133 *mut *mut core::ffi::c_void,
22134 ) -> windows_core::HRESULT,
22135 pub SetDest: unsafe extern "system" fn(
22136 *mut core::ffi::c_void,
22137 *mut core::ffi::c_void,
22138 ) -> windows_core::HRESULT,
22139 pub OnPreSave: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22140 pub OnPostSave: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22141 pub CanPackage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22142 pub IsValidMimeType: unsafe extern "system" fn(
22143 *mut core::ffi::c_void,
22144 windows_core::PCWSTR,
22145 ) -> windows_core::HRESULT,
22146}
22147pub trait IMimeEditTag_Impl: windows_core::IUnknownImpl {
22148 fn GetSrc(&self, pbstr: *mut windows_core::BSTR) -> windows_core::Result<()>;
22149 fn SetSrc(&self, bstr: &windows_core::BSTR) -> windows_core::Result<()>;
22150 fn GetDest(&self, pbstr: *mut windows_core::BSTR) -> windows_core::Result<()>;
22151 fn SetDest(&self, bstr: &windows_core::BSTR) -> windows_core::Result<()>;
22152 fn OnPreSave(&self) -> windows_core::Result<()>;
22153 fn OnPostSave(&self) -> windows_core::Result<()>;
22154 fn CanPackage(&self) -> windows_core::Result<()>;
22155 fn IsValidMimeType(&self, psztypew: &windows_core::PCWSTR) -> windows_core::Result<()>;
22156}
22157impl IMimeEditTag_Vtbl {
22158 pub const fn new<Identity: IMimeEditTag_Impl, const OFFSET: isize>() -> Self {
22159 unsafe extern "system" fn GetSrc<Identity: IMimeEditTag_Impl, const OFFSET: isize>(
22160 this: *mut core::ffi::c_void,
22161 pbstr: *mut *mut core::ffi::c_void,
22162 ) -> windows_core::HRESULT {
22163 unsafe {
22164 let this: &Identity =
22165 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22166 IMimeEditTag_Impl::GetSrc(this, core::mem::transmute_copy(&pbstr)).into()
22167 }
22168 }
22169 unsafe extern "system" fn SetSrc<Identity: IMimeEditTag_Impl, const OFFSET: isize>(
22170 this: *mut core::ffi::c_void,
22171 bstr: *mut core::ffi::c_void,
22172 ) -> windows_core::HRESULT {
22173 unsafe {
22174 let this: &Identity =
22175 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22176 IMimeEditTag_Impl::SetSrc(this, core::mem::transmute(&bstr)).into()
22177 }
22178 }
22179 unsafe extern "system" fn GetDest<Identity: IMimeEditTag_Impl, const OFFSET: isize>(
22180 this: *mut core::ffi::c_void,
22181 pbstr: *mut *mut core::ffi::c_void,
22182 ) -> windows_core::HRESULT {
22183 unsafe {
22184 let this: &Identity =
22185 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22186 IMimeEditTag_Impl::GetDest(this, core::mem::transmute_copy(&pbstr)).into()
22187 }
22188 }
22189 unsafe extern "system" fn SetDest<Identity: IMimeEditTag_Impl, const OFFSET: isize>(
22190 this: *mut core::ffi::c_void,
22191 bstr: *mut core::ffi::c_void,
22192 ) -> windows_core::HRESULT {
22193 unsafe {
22194 let this: &Identity =
22195 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22196 IMimeEditTag_Impl::SetDest(this, core::mem::transmute(&bstr)).into()
22197 }
22198 }
22199 unsafe extern "system" fn OnPreSave<Identity: IMimeEditTag_Impl, const OFFSET: isize>(
22200 this: *mut core::ffi::c_void,
22201 ) -> windows_core::HRESULT {
22202 unsafe {
22203 let this: &Identity =
22204 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22205 IMimeEditTag_Impl::OnPreSave(this).into()
22206 }
22207 }
22208 unsafe extern "system" fn OnPostSave<Identity: IMimeEditTag_Impl, const OFFSET: isize>(
22209 this: *mut core::ffi::c_void,
22210 ) -> windows_core::HRESULT {
22211 unsafe {
22212 let this: &Identity =
22213 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22214 IMimeEditTag_Impl::OnPostSave(this).into()
22215 }
22216 }
22217 unsafe extern "system" fn CanPackage<Identity: IMimeEditTag_Impl, const OFFSET: isize>(
22218 this: *mut core::ffi::c_void,
22219 ) -> windows_core::HRESULT {
22220 unsafe {
22221 let this: &Identity =
22222 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22223 IMimeEditTag_Impl::CanPackage(this).into()
22224 }
22225 }
22226 unsafe extern "system" fn IsValidMimeType<
22227 Identity: IMimeEditTag_Impl,
22228 const OFFSET: isize,
22229 >(
22230 this: *mut core::ffi::c_void,
22231 psztypew: windows_core::PCWSTR,
22232 ) -> windows_core::HRESULT {
22233 unsafe {
22234 let this: &Identity =
22235 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22236 IMimeEditTag_Impl::IsValidMimeType(this, core::mem::transmute(&psztypew)).into()
22237 }
22238 }
22239 Self {
22240 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22241 GetSrc: GetSrc::<Identity, OFFSET>,
22242 SetSrc: SetSrc::<Identity, OFFSET>,
22243 GetDest: GetDest::<Identity, OFFSET>,
22244 SetDest: SetDest::<Identity, OFFSET>,
22245 OnPreSave: OnPreSave::<Identity, OFFSET>,
22246 OnPostSave: OnPostSave::<Identity, OFFSET>,
22247 CanPackage: CanPackage::<Identity, OFFSET>,
22248 IsValidMimeType: IsValidMimeType::<Identity, OFFSET>,
22249 }
22250 }
22251 pub fn matches(iid: &windows_core::GUID) -> bool {
22252 iid == &<IMimeEditTag as windows_core::Interface>::IID
22253 }
22254}
22255impl windows_core::RuntimeName for IMimeEditTag {}
22256windows_core::imp::define_interface!(
22257 IMimeEditTagCollection,
22258 IMimeEditTagCollection_Vtbl,
22259 0xd09ee528_7b38_11d2_8c12_00c04fa31009
22260);
22261windows_core::imp::interface_hierarchy!(IMimeEditTagCollection, windows_core::IUnknown);
22262impl IMimeEditTagCollection {
22263 pub unsafe fn Init<P0>(&self, phtmldoc: P0) -> windows_core::Result<()>
22264 where
22265 P0: windows_core::Param<windows_core::IUnknown>,
22266 {
22267 unsafe {
22268 (windows_core::Interface::vtable(self).Init)(
22269 windows_core::Interface::as_raw(self),
22270 phtmldoc.param().abi(),
22271 )
22272 .ok()
22273 }
22274 }
22275 pub unsafe fn Next(
22276 &self,
22277 cfetch: u32,
22278 pptag: *mut Option<IMimeEditTag>,
22279 pcfetched: *mut u32,
22280 ) -> windows_core::Result<()> {
22281 unsafe {
22282 (windows_core::Interface::vtable(self).Next)(
22283 windows_core::Interface::as_raw(self),
22284 cfetch,
22285 core::mem::transmute(pptag),
22286 pcfetched as _,
22287 )
22288 .ok()
22289 }
22290 }
22291 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22292 unsafe {
22293 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22294 .ok()
22295 }
22296 }
22297 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22298 unsafe {
22299 (windows_core::Interface::vtable(self).Count)(
22300 windows_core::Interface::as_raw(self),
22301 pcitems as _,
22302 )
22303 .ok()
22304 }
22305 }
22306}
22307#[repr(C)]
22308pub struct IMimeEditTagCollection_Vtbl {
22309 pub base__: windows_core::IUnknown_Vtbl,
22310 pub Init: unsafe extern "system" fn(
22311 *mut core::ffi::c_void,
22312 *mut core::ffi::c_void,
22313 ) -> windows_core::HRESULT,
22314 pub Next: unsafe extern "system" fn(
22315 *mut core::ffi::c_void,
22316 u32,
22317 *mut *mut core::ffi::c_void,
22318 *mut u32,
22319 ) -> windows_core::HRESULT,
22320 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22321 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
22322}
22323pub trait IMimeEditTagCollection_Impl: windows_core::IUnknownImpl {
22324 fn Init(
22325 &self,
22326 phtmldoc: windows_core::Ref<'_, windows_core::IUnknown>,
22327 ) -> windows_core::Result<()>;
22328 fn Next(
22329 &self,
22330 cfetch: u32,
22331 pptag: windows_core::OutRef<'_, IMimeEditTag>,
22332 pcfetched: *mut u32,
22333 ) -> windows_core::Result<()>;
22334 fn Reset(&self) -> windows_core::Result<()>;
22335 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
22336}
22337impl IMimeEditTagCollection_Vtbl {
22338 pub const fn new<Identity: IMimeEditTagCollection_Impl, const OFFSET: isize>() -> Self {
22339 unsafe extern "system" fn Init<
22340 Identity: IMimeEditTagCollection_Impl,
22341 const OFFSET: isize,
22342 >(
22343 this: *mut core::ffi::c_void,
22344 phtmldoc: *mut core::ffi::c_void,
22345 ) -> windows_core::HRESULT {
22346 unsafe {
22347 let this: &Identity =
22348 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22349 IMimeEditTagCollection_Impl::Init(this, core::mem::transmute_copy(&phtmldoc)).into()
22350 }
22351 }
22352 unsafe extern "system" fn Next<
22353 Identity: IMimeEditTagCollection_Impl,
22354 const OFFSET: isize,
22355 >(
22356 this: *mut core::ffi::c_void,
22357 cfetch: u32,
22358 pptag: *mut *mut core::ffi::c_void,
22359 pcfetched: *mut u32,
22360 ) -> windows_core::HRESULT {
22361 unsafe {
22362 let this: &Identity =
22363 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22364 IMimeEditTagCollection_Impl::Next(
22365 this,
22366 core::mem::transmute_copy(&cfetch),
22367 core::mem::transmute_copy(&pptag),
22368 core::mem::transmute_copy(&pcfetched),
22369 )
22370 .into()
22371 }
22372 }
22373 unsafe extern "system" fn Reset<
22374 Identity: IMimeEditTagCollection_Impl,
22375 const OFFSET: isize,
22376 >(
22377 this: *mut core::ffi::c_void,
22378 ) -> windows_core::HRESULT {
22379 unsafe {
22380 let this: &Identity =
22381 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22382 IMimeEditTagCollection_Impl::Reset(this).into()
22383 }
22384 }
22385 unsafe extern "system" fn Count<
22386 Identity: IMimeEditTagCollection_Impl,
22387 const OFFSET: isize,
22388 >(
22389 this: *mut core::ffi::c_void,
22390 pcitems: *mut u32,
22391 ) -> windows_core::HRESULT {
22392 unsafe {
22393 let this: &Identity =
22394 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22395 IMimeEditTagCollection_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
22396 }
22397 }
22398 Self {
22399 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22400 Init: Init::<Identity, OFFSET>,
22401 Next: Next::<Identity, OFFSET>,
22402 Reset: Reset::<Identity, OFFSET>,
22403 Count: Count::<Identity, OFFSET>,
22404 }
22405 }
22406 pub fn matches(iid: &windows_core::GUID) -> bool {
22407 iid == &<IMimeEditTagCollection as windows_core::Interface>::IID
22408 }
22409}
22410impl windows_core::RuntimeName for IMimeEditTagCollection {}
22411windows_core::imp::define_interface!(
22412 IMimeEnumAddressTypes,
22413 IMimeEnumAddressTypes_Vtbl,
22414 0xc5588354_7f86_11d0_8252_00c04fd85ab4
22415);
22416windows_core::imp::interface_hierarchy!(IMimeEnumAddressTypes, windows_core::IUnknown);
22417impl IMimeEnumAddressTypes {
22418 pub unsafe fn Next(
22419 &self,
22420 cfetch: u32,
22421 prgadr: *mut ADDRESSPROPS,
22422 pcfetched: *mut u32,
22423 ) -> windows_core::Result<()> {
22424 unsafe {
22425 (windows_core::Interface::vtable(self).Next)(
22426 windows_core::Interface::as_raw(self),
22427 cfetch,
22428 prgadr as _,
22429 pcfetched as _,
22430 )
22431 .ok()
22432 }
22433 }
22434 pub unsafe fn Skip(&self, citems: u32) -> windows_core::Result<()> {
22435 unsafe {
22436 (windows_core::Interface::vtable(self).Skip)(
22437 windows_core::Interface::as_raw(self),
22438 citems,
22439 )
22440 .ok()
22441 }
22442 }
22443 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22444 unsafe {
22445 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22446 .ok()
22447 }
22448 }
22449 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeEnumAddressTypes> {
22450 unsafe {
22451 let mut result__ = core::mem::zeroed();
22452 (windows_core::Interface::vtable(self).Clone)(
22453 windows_core::Interface::as_raw(self),
22454 &mut result__,
22455 )
22456 .and_then(|| windows_core::Type::from_abi(result__))
22457 }
22458 }
22459 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22460 unsafe {
22461 (windows_core::Interface::vtable(self).Count)(
22462 windows_core::Interface::as_raw(self),
22463 pcitems as _,
22464 )
22465 .ok()
22466 }
22467 }
22468}
22469#[repr(C)]
22470pub struct IMimeEnumAddressTypes_Vtbl {
22471 pub base__: windows_core::IUnknown_Vtbl,
22472 pub Next: unsafe extern "system" fn(
22473 *mut core::ffi::c_void,
22474 u32,
22475 *mut ADDRESSPROPS,
22476 *mut u32,
22477 ) -> windows_core::HRESULT,
22478 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
22479 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22480 pub Clone: unsafe extern "system" fn(
22481 *mut core::ffi::c_void,
22482 *mut *mut core::ffi::c_void,
22483 ) -> windows_core::HRESULT,
22484 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
22485}
22486pub trait IMimeEnumAddressTypes_Impl: windows_core::IUnknownImpl {
22487 fn Next(
22488 &self,
22489 cfetch: u32,
22490 prgadr: *mut ADDRESSPROPS,
22491 pcfetched: *mut u32,
22492 ) -> windows_core::Result<()>;
22493 fn Skip(&self, citems: u32) -> windows_core::Result<()>;
22494 fn Reset(&self) -> windows_core::Result<()>;
22495 fn Clone(&self) -> windows_core::Result<IMimeEnumAddressTypes>;
22496 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
22497}
22498impl IMimeEnumAddressTypes_Vtbl {
22499 pub const fn new<Identity: IMimeEnumAddressTypes_Impl, const OFFSET: isize>() -> Self {
22500 unsafe extern "system" fn Next<
22501 Identity: IMimeEnumAddressTypes_Impl,
22502 const OFFSET: isize,
22503 >(
22504 this: *mut core::ffi::c_void,
22505 cfetch: u32,
22506 prgadr: *mut ADDRESSPROPS,
22507 pcfetched: *mut u32,
22508 ) -> windows_core::HRESULT {
22509 unsafe {
22510 let this: &Identity =
22511 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22512 IMimeEnumAddressTypes_Impl::Next(
22513 this,
22514 core::mem::transmute_copy(&cfetch),
22515 core::mem::transmute_copy(&prgadr),
22516 core::mem::transmute_copy(&pcfetched),
22517 )
22518 .into()
22519 }
22520 }
22521 unsafe extern "system" fn Skip<
22522 Identity: IMimeEnumAddressTypes_Impl,
22523 const OFFSET: isize,
22524 >(
22525 this: *mut core::ffi::c_void,
22526 citems: u32,
22527 ) -> windows_core::HRESULT {
22528 unsafe {
22529 let this: &Identity =
22530 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22531 IMimeEnumAddressTypes_Impl::Skip(this, core::mem::transmute_copy(&citems)).into()
22532 }
22533 }
22534 unsafe extern "system" fn Reset<
22535 Identity: IMimeEnumAddressTypes_Impl,
22536 const OFFSET: isize,
22537 >(
22538 this: *mut core::ffi::c_void,
22539 ) -> windows_core::HRESULT {
22540 unsafe {
22541 let this: &Identity =
22542 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22543 IMimeEnumAddressTypes_Impl::Reset(this).into()
22544 }
22545 }
22546 unsafe extern "system" fn Clone<
22547 Identity: IMimeEnumAddressTypes_Impl,
22548 const OFFSET: isize,
22549 >(
22550 this: *mut core::ffi::c_void,
22551 ppenum: *mut *mut core::ffi::c_void,
22552 ) -> windows_core::HRESULT {
22553 unsafe {
22554 let this: &Identity =
22555 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22556 match IMimeEnumAddressTypes_Impl::Clone(this) {
22557 Ok(ok__) => {
22558 ppenum.write(core::mem::transmute(ok__));
22559 windows_core::HRESULT(0)
22560 }
22561 Err(err) => err.into(),
22562 }
22563 }
22564 }
22565 unsafe extern "system" fn Count<
22566 Identity: IMimeEnumAddressTypes_Impl,
22567 const OFFSET: isize,
22568 >(
22569 this: *mut core::ffi::c_void,
22570 pcitems: *mut u32,
22571 ) -> windows_core::HRESULT {
22572 unsafe {
22573 let this: &Identity =
22574 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22575 IMimeEnumAddressTypes_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
22576 }
22577 }
22578 Self {
22579 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22580 Next: Next::<Identity, OFFSET>,
22581 Skip: Skip::<Identity, OFFSET>,
22582 Reset: Reset::<Identity, OFFSET>,
22583 Clone: Clone::<Identity, OFFSET>,
22584 Count: Count::<Identity, OFFSET>,
22585 }
22586 }
22587 pub fn matches(iid: &windows_core::GUID) -> bool {
22588 iid == &<IMimeEnumAddressTypes as windows_core::Interface>::IID
22589 }
22590}
22591impl windows_core::RuntimeName for IMimeEnumAddressTypes {}
22592windows_core::imp::define_interface!(
22593 IMimeEnumHeaderRows,
22594 IMimeEnumHeaderRows_Vtbl,
22595 0xc558834d_7f86_11d0_8252_00c04fd85ab4
22596);
22597windows_core::imp::interface_hierarchy!(IMimeEnumHeaderRows, windows_core::IUnknown);
22598impl IMimeEnumHeaderRows {
22599 pub unsafe fn Next(
22600 &self,
22601 cfetch: u32,
22602 prgrow: *mut ENUMHEADERROW,
22603 pcfetched: *mut u32,
22604 ) -> windows_core::Result<()> {
22605 unsafe {
22606 (windows_core::Interface::vtable(self).Next)(
22607 windows_core::Interface::as_raw(self),
22608 cfetch,
22609 prgrow as _,
22610 pcfetched as _,
22611 )
22612 .ok()
22613 }
22614 }
22615 pub unsafe fn Skip(&self, citems: u32) -> windows_core::Result<()> {
22616 unsafe {
22617 (windows_core::Interface::vtable(self).Skip)(
22618 windows_core::Interface::as_raw(self),
22619 citems,
22620 )
22621 .ok()
22622 }
22623 }
22624 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22625 unsafe {
22626 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22627 .ok()
22628 }
22629 }
22630 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeEnumHeaderRows> {
22631 unsafe {
22632 let mut result__ = core::mem::zeroed();
22633 (windows_core::Interface::vtable(self).Clone)(
22634 windows_core::Interface::as_raw(self),
22635 &mut result__,
22636 )
22637 .and_then(|| windows_core::Type::from_abi(result__))
22638 }
22639 }
22640 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22641 unsafe {
22642 (windows_core::Interface::vtable(self).Count)(
22643 windows_core::Interface::as_raw(self),
22644 pcitems as _,
22645 )
22646 .ok()
22647 }
22648 }
22649}
22650#[repr(C)]
22651pub struct IMimeEnumHeaderRows_Vtbl {
22652 pub base__: windows_core::IUnknown_Vtbl,
22653 pub Next: unsafe extern "system" fn(
22654 *mut core::ffi::c_void,
22655 u32,
22656 *mut ENUMHEADERROW,
22657 *mut u32,
22658 ) -> windows_core::HRESULT,
22659 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
22660 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22661 pub Clone: unsafe extern "system" fn(
22662 *mut core::ffi::c_void,
22663 *mut *mut core::ffi::c_void,
22664 ) -> windows_core::HRESULT,
22665 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
22666}
22667pub trait IMimeEnumHeaderRows_Impl: windows_core::IUnknownImpl {
22668 fn Next(
22669 &self,
22670 cfetch: u32,
22671 prgrow: *mut ENUMHEADERROW,
22672 pcfetched: *mut u32,
22673 ) -> windows_core::Result<()>;
22674 fn Skip(&self, citems: u32) -> windows_core::Result<()>;
22675 fn Reset(&self) -> windows_core::Result<()>;
22676 fn Clone(&self) -> windows_core::Result<IMimeEnumHeaderRows>;
22677 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
22678}
22679impl IMimeEnumHeaderRows_Vtbl {
22680 pub const fn new<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>() -> Self {
22681 unsafe extern "system" fn Next<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22682 this: *mut core::ffi::c_void,
22683 cfetch: u32,
22684 prgrow: *mut ENUMHEADERROW,
22685 pcfetched: *mut u32,
22686 ) -> windows_core::HRESULT {
22687 unsafe {
22688 let this: &Identity =
22689 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22690 IMimeEnumHeaderRows_Impl::Next(
22691 this,
22692 core::mem::transmute_copy(&cfetch),
22693 core::mem::transmute_copy(&prgrow),
22694 core::mem::transmute_copy(&pcfetched),
22695 )
22696 .into()
22697 }
22698 }
22699 unsafe extern "system" fn Skip<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22700 this: *mut core::ffi::c_void,
22701 citems: u32,
22702 ) -> windows_core::HRESULT {
22703 unsafe {
22704 let this: &Identity =
22705 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22706 IMimeEnumHeaderRows_Impl::Skip(this, core::mem::transmute_copy(&citems)).into()
22707 }
22708 }
22709 unsafe extern "system" fn Reset<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22710 this: *mut core::ffi::c_void,
22711 ) -> windows_core::HRESULT {
22712 unsafe {
22713 let this: &Identity =
22714 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22715 IMimeEnumHeaderRows_Impl::Reset(this).into()
22716 }
22717 }
22718 unsafe extern "system" fn Clone<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22719 this: *mut core::ffi::c_void,
22720 ppenum: *mut *mut core::ffi::c_void,
22721 ) -> windows_core::HRESULT {
22722 unsafe {
22723 let this: &Identity =
22724 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22725 match IMimeEnumHeaderRows_Impl::Clone(this) {
22726 Ok(ok__) => {
22727 ppenum.write(core::mem::transmute(ok__));
22728 windows_core::HRESULT(0)
22729 }
22730 Err(err) => err.into(),
22731 }
22732 }
22733 }
22734 unsafe extern "system" fn Count<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22735 this: *mut core::ffi::c_void,
22736 pcitems: *mut u32,
22737 ) -> windows_core::HRESULT {
22738 unsafe {
22739 let this: &Identity =
22740 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22741 IMimeEnumHeaderRows_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
22742 }
22743 }
22744 Self {
22745 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22746 Next: Next::<Identity, OFFSET>,
22747 Skip: Skip::<Identity, OFFSET>,
22748 Reset: Reset::<Identity, OFFSET>,
22749 Clone: Clone::<Identity, OFFSET>,
22750 Count: Count::<Identity, OFFSET>,
22751 }
22752 }
22753 pub fn matches(iid: &windows_core::GUID) -> bool {
22754 iid == &<IMimeEnumHeaderRows as windows_core::Interface>::IID
22755 }
22756}
22757impl windows_core::RuntimeName for IMimeEnumHeaderRows {}
22758windows_core::imp::define_interface!(
22759 IMimeEnumMessageParts,
22760 IMimeEnumMessageParts_Vtbl,
22761 0xc5588350_7f86_11d0_8252_00c04fd85ab4
22762);
22763windows_core::imp::interface_hierarchy!(IMimeEnumMessageParts, windows_core::IUnknown);
22764impl IMimeEnumMessageParts {
22765 pub unsafe fn Next(
22766 &self,
22767 cfetch: u32,
22768 prgpmessage: *mut Option<IMimeMessage>,
22769 pcfetched: *mut u32,
22770 ) -> windows_core::Result<()> {
22771 unsafe {
22772 (windows_core::Interface::vtable(self).Next)(
22773 windows_core::Interface::as_raw(self),
22774 cfetch,
22775 core::mem::transmute(prgpmessage),
22776 pcfetched as _,
22777 )
22778 .ok()
22779 }
22780 }
22781 pub unsafe fn Skip(&self, citems: u32) -> windows_core::Result<()> {
22782 unsafe {
22783 (windows_core::Interface::vtable(self).Skip)(
22784 windows_core::Interface::as_raw(self),
22785 citems,
22786 )
22787 .ok()
22788 }
22789 }
22790 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22791 unsafe {
22792 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22793 .ok()
22794 }
22795 }
22796 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeEnumMessageParts> {
22797 unsafe {
22798 let mut result__ = core::mem::zeroed();
22799 (windows_core::Interface::vtable(self).Clone)(
22800 windows_core::Interface::as_raw(self),
22801 &mut result__,
22802 )
22803 .and_then(|| windows_core::Type::from_abi(result__))
22804 }
22805 }
22806 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22807 unsafe {
22808 (windows_core::Interface::vtable(self).Count)(
22809 windows_core::Interface::as_raw(self),
22810 pcitems as _,
22811 )
22812 .ok()
22813 }
22814 }
22815}
22816#[repr(C)]
22817pub struct IMimeEnumMessageParts_Vtbl {
22818 pub base__: windows_core::IUnknown_Vtbl,
22819 pub Next: unsafe extern "system" fn(
22820 *mut core::ffi::c_void,
22821 u32,
22822 *mut *mut core::ffi::c_void,
22823 *mut u32,
22824 ) -> windows_core::HRESULT,
22825 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
22826 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22827 pub Clone: unsafe extern "system" fn(
22828 *mut core::ffi::c_void,
22829 *mut *mut core::ffi::c_void,
22830 ) -> windows_core::HRESULT,
22831 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
22832}
22833pub trait IMimeEnumMessageParts_Impl: windows_core::IUnknownImpl {
22834 fn Next(
22835 &self,
22836 cfetch: u32,
22837 prgpmessage: windows_core::OutRef<'_, IMimeMessage>,
22838 pcfetched: *mut u32,
22839 ) -> windows_core::Result<()>;
22840 fn Skip(&self, citems: u32) -> windows_core::Result<()>;
22841 fn Reset(&self) -> windows_core::Result<()>;
22842 fn Clone(&self) -> windows_core::Result<IMimeEnumMessageParts>;
22843 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
22844}
22845impl IMimeEnumMessageParts_Vtbl {
22846 pub const fn new<Identity: IMimeEnumMessageParts_Impl, const OFFSET: isize>() -> Self {
22847 unsafe extern "system" fn Next<
22848 Identity: IMimeEnumMessageParts_Impl,
22849 const OFFSET: isize,
22850 >(
22851 this: *mut core::ffi::c_void,
22852 cfetch: u32,
22853 prgpmessage: *mut *mut core::ffi::c_void,
22854 pcfetched: *mut u32,
22855 ) -> windows_core::HRESULT {
22856 unsafe {
22857 let this: &Identity =
22858 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22859 IMimeEnumMessageParts_Impl::Next(
22860 this,
22861 core::mem::transmute_copy(&cfetch),
22862 core::mem::transmute_copy(&prgpmessage),
22863 core::mem::transmute_copy(&pcfetched),
22864 )
22865 .into()
22866 }
22867 }
22868 unsafe extern "system" fn Skip<
22869 Identity: IMimeEnumMessageParts_Impl,
22870 const OFFSET: isize,
22871 >(
22872 this: *mut core::ffi::c_void,
22873 citems: u32,
22874 ) -> windows_core::HRESULT {
22875 unsafe {
22876 let this: &Identity =
22877 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22878 IMimeEnumMessageParts_Impl::Skip(this, core::mem::transmute_copy(&citems)).into()
22879 }
22880 }
22881 unsafe extern "system" fn Reset<
22882 Identity: IMimeEnumMessageParts_Impl,
22883 const OFFSET: isize,
22884 >(
22885 this: *mut core::ffi::c_void,
22886 ) -> windows_core::HRESULT {
22887 unsafe {
22888 let this: &Identity =
22889 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22890 IMimeEnumMessageParts_Impl::Reset(this).into()
22891 }
22892 }
22893 unsafe extern "system" fn Clone<
22894 Identity: IMimeEnumMessageParts_Impl,
22895 const OFFSET: isize,
22896 >(
22897 this: *mut core::ffi::c_void,
22898 ppenum: *mut *mut core::ffi::c_void,
22899 ) -> windows_core::HRESULT {
22900 unsafe {
22901 let this: &Identity =
22902 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22903 match IMimeEnumMessageParts_Impl::Clone(this) {
22904 Ok(ok__) => {
22905 ppenum.write(core::mem::transmute(ok__));
22906 windows_core::HRESULT(0)
22907 }
22908 Err(err) => err.into(),
22909 }
22910 }
22911 }
22912 unsafe extern "system" fn Count<
22913 Identity: IMimeEnumMessageParts_Impl,
22914 const OFFSET: isize,
22915 >(
22916 this: *mut core::ffi::c_void,
22917 pcitems: *mut u32,
22918 ) -> windows_core::HRESULT {
22919 unsafe {
22920 let this: &Identity =
22921 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22922 IMimeEnumMessageParts_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
22923 }
22924 }
22925 Self {
22926 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22927 Next: Next::<Identity, OFFSET>,
22928 Skip: Skip::<Identity, OFFSET>,
22929 Reset: Reset::<Identity, OFFSET>,
22930 Clone: Clone::<Identity, OFFSET>,
22931 Count: Count::<Identity, OFFSET>,
22932 }
22933 }
22934 pub fn matches(iid: &windows_core::GUID) -> bool {
22935 iid == &<IMimeEnumMessageParts as windows_core::Interface>::IID
22936 }
22937}
22938impl windows_core::RuntimeName for IMimeEnumMessageParts {}
22939windows_core::imp::define_interface!(
22940 IMimeEnumProperties,
22941 IMimeEnumProperties_Vtbl,
22942 0xfd853cee_7f86_11d0_8252_00c04fd85ab4
22943);
22944windows_core::imp::interface_hierarchy!(IMimeEnumProperties, windows_core::IUnknown);
22945impl IMimeEnumProperties {
22946 pub unsafe fn Next(
22947 &self,
22948 cfetch: u32,
22949 prgprop: *mut ENUMPROPERTY,
22950 pcfetched: *mut u32,
22951 ) -> windows_core::Result<()> {
22952 unsafe {
22953 (windows_core::Interface::vtable(self).Next)(
22954 windows_core::Interface::as_raw(self),
22955 cfetch,
22956 prgprop as _,
22957 pcfetched as _,
22958 )
22959 .ok()
22960 }
22961 }
22962 pub unsafe fn Skip(&self, citems: u32) -> windows_core::Result<()> {
22963 unsafe {
22964 (windows_core::Interface::vtable(self).Skip)(
22965 windows_core::Interface::as_raw(self),
22966 citems,
22967 )
22968 .ok()
22969 }
22970 }
22971 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22972 unsafe {
22973 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22974 .ok()
22975 }
22976 }
22977 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeEnumProperties> {
22978 unsafe {
22979 let mut result__ = core::mem::zeroed();
22980 (windows_core::Interface::vtable(self).Clone)(
22981 windows_core::Interface::as_raw(self),
22982 &mut result__,
22983 )
22984 .and_then(|| windows_core::Type::from_abi(result__))
22985 }
22986 }
22987 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22988 unsafe {
22989 (windows_core::Interface::vtable(self).Count)(
22990 windows_core::Interface::as_raw(self),
22991 pcitems as _,
22992 )
22993 .ok()
22994 }
22995 }
22996}
22997#[repr(C)]
22998pub struct IMimeEnumProperties_Vtbl {
22999 pub base__: windows_core::IUnknown_Vtbl,
23000 pub Next: unsafe extern "system" fn(
23001 *mut core::ffi::c_void,
23002 u32,
23003 *mut ENUMPROPERTY,
23004 *mut u32,
23005 ) -> windows_core::HRESULT,
23006 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
23007 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
23008 pub Clone: unsafe extern "system" fn(
23009 *mut core::ffi::c_void,
23010 *mut *mut core::ffi::c_void,
23011 ) -> windows_core::HRESULT,
23012 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
23013}
23014pub trait IMimeEnumProperties_Impl: windows_core::IUnknownImpl {
23015 fn Next(
23016 &self,
23017 cfetch: u32,
23018 prgprop: *mut ENUMPROPERTY,
23019 pcfetched: *mut u32,
23020 ) -> windows_core::Result<()>;
23021 fn Skip(&self, citems: u32) -> windows_core::Result<()>;
23022 fn Reset(&self) -> windows_core::Result<()>;
23023 fn Clone(&self) -> windows_core::Result<IMimeEnumProperties>;
23024 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
23025}
23026impl IMimeEnumProperties_Vtbl {
23027 pub const fn new<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>() -> Self {
23028 unsafe extern "system" fn Next<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23029 this: *mut core::ffi::c_void,
23030 cfetch: u32,
23031 prgprop: *mut ENUMPROPERTY,
23032 pcfetched: *mut u32,
23033 ) -> windows_core::HRESULT {
23034 unsafe {
23035 let this: &Identity =
23036 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23037 IMimeEnumProperties_Impl::Next(
23038 this,
23039 core::mem::transmute_copy(&cfetch),
23040 core::mem::transmute_copy(&prgprop),
23041 core::mem::transmute_copy(&pcfetched),
23042 )
23043 .into()
23044 }
23045 }
23046 unsafe extern "system" fn Skip<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23047 this: *mut core::ffi::c_void,
23048 citems: u32,
23049 ) -> windows_core::HRESULT {
23050 unsafe {
23051 let this: &Identity =
23052 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23053 IMimeEnumProperties_Impl::Skip(this, core::mem::transmute_copy(&citems)).into()
23054 }
23055 }
23056 unsafe extern "system" fn Reset<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23057 this: *mut core::ffi::c_void,
23058 ) -> windows_core::HRESULT {
23059 unsafe {
23060 let this: &Identity =
23061 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23062 IMimeEnumProperties_Impl::Reset(this).into()
23063 }
23064 }
23065 unsafe extern "system" fn Clone<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23066 this: *mut core::ffi::c_void,
23067 ppenum: *mut *mut core::ffi::c_void,
23068 ) -> windows_core::HRESULT {
23069 unsafe {
23070 let this: &Identity =
23071 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23072 match IMimeEnumProperties_Impl::Clone(this) {
23073 Ok(ok__) => {
23074 ppenum.write(core::mem::transmute(ok__));
23075 windows_core::HRESULT(0)
23076 }
23077 Err(err) => err.into(),
23078 }
23079 }
23080 }
23081 unsafe extern "system" fn Count<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23082 this: *mut core::ffi::c_void,
23083 pcitems: *mut u32,
23084 ) -> windows_core::HRESULT {
23085 unsafe {
23086 let this: &Identity =
23087 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23088 IMimeEnumProperties_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
23089 }
23090 }
23091 Self {
23092 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23093 Next: Next::<Identity, OFFSET>,
23094 Skip: Skip::<Identity, OFFSET>,
23095 Reset: Reset::<Identity, OFFSET>,
23096 Clone: Clone::<Identity, OFFSET>,
23097 Count: Count::<Identity, OFFSET>,
23098 }
23099 }
23100 pub fn matches(iid: &windows_core::GUID) -> bool {
23101 iid == &<IMimeEnumProperties as windows_core::Interface>::IID
23102 }
23103}
23104impl windows_core::RuntimeName for IMimeEnumProperties {}
23105windows_core::imp::define_interface!(
23106 IMimeHeaderTable,
23107 IMimeHeaderTable_Vtbl,
23108 0xfd853cd1_7f86_11d0_8252_00c04fd85ab4
23109);
23110impl core::ops::Deref for IMimeHeaderTable {
23111 type Target = windows::Win32::System::Com::IPersistStream;
23112 fn deref(&self) -> &Self::Target {
23113 unsafe { core::mem::transmute(self) }
23114 }
23115}
23116windows_core::imp::interface_hierarchy!(
23117 IMimeHeaderTable,
23118 windows_core::IUnknown,
23119 windows::Win32::System::Com::IPersist,
23120 windows::Win32::System::Com::IPersistStream
23121);
23122impl IMimeHeaderTable {
23123 pub unsafe fn Load<P0>(&self, pstm: P0) -> windows_core::Result<()>
23124 where
23125 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
23126 {
23127 unsafe {
23128 (windows_core::Interface::vtable(self).Load)(
23129 windows_core::Interface::as_raw(self),
23130 pstm.param().abi(),
23131 )
23132 .ok()
23133 }
23134 }
23135 pub unsafe fn Save<P0>(&self, pstm: P0, fcleardirty: bool) -> windows_core::Result<()>
23136 where
23137 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
23138 {
23139 unsafe {
23140 (windows_core::Interface::vtable(self).Save)(
23141 windows_core::Interface::as_raw(self),
23142 pstm.param().abi(),
23143 fcleardirty.into(),
23144 )
23145 .ok()
23146 }
23147 }
23148 pub unsafe fn GetSizeMax(&self) -> windows_core::Result<u64> {
23149 unsafe {
23150 let mut result__ = core::mem::zeroed();
23151 (windows_core::Interface::vtable(self).GetSizeMax)(
23152 windows_core::Interface::as_raw(self),
23153 &mut result__,
23154 )
23155 .map(|| result__)
23156 }
23157 }
23158 pub unsafe fn FindFirstRow(
23159 &self,
23160 pfindheader: *mut FINDHEADER,
23161 phrow: *mut *mut HHEADERROW__,
23162 ) -> windows_core::Result<()> {
23163 unsafe {
23164 (windows_core::Interface::vtable(self).FindFirstRow)(
23165 windows_core::Interface::as_raw(self),
23166 pfindheader as _,
23167 phrow as _,
23168 )
23169 .ok()
23170 }
23171 }
23172 pub unsafe fn FindNextRow(
23173 &self,
23174 pfindheader: *mut FINDHEADER,
23175 phrow: *mut *mut HHEADERROW__,
23176 ) -> windows_core::Result<()> {
23177 unsafe {
23178 (windows_core::Interface::vtable(self).FindNextRow)(
23179 windows_core::Interface::as_raw(self),
23180 pfindheader as _,
23181 phrow as _,
23182 )
23183 .ok()
23184 }
23185 }
23186 pub unsafe fn CountRows<P0>(&self, pszheader: P0, pcrows: *mut u32) -> windows_core::Result<()>
23187 where
23188 P0: windows_core::Param<windows_core::PCSTR>,
23189 {
23190 unsafe {
23191 (windows_core::Interface::vtable(self).CountRows)(
23192 windows_core::Interface::as_raw(self),
23193 pszheader.param().abi(),
23194 pcrows as _,
23195 )
23196 .ok()
23197 }
23198 }
23199 pub unsafe fn AppendRow<P0, P2>(
23200 &self,
23201 pszheader: P0,
23202 dwflags: u32,
23203 pszdata: P2,
23204 cchdata: u32,
23205 phrow: *mut *mut HHEADERROW__,
23206 ) -> windows_core::Result<()>
23207 where
23208 P0: windows_core::Param<windows_core::PCSTR>,
23209 P2: windows_core::Param<windows_core::PCSTR>,
23210 {
23211 unsafe {
23212 (windows_core::Interface::vtable(self).AppendRow)(
23213 windows_core::Interface::as_raw(self),
23214 pszheader.param().abi(),
23215 dwflags,
23216 pszdata.param().abi(),
23217 cchdata,
23218 phrow as _,
23219 )
23220 .ok()
23221 }
23222 }
23223 pub unsafe fn DeleteRow(&self, hrow: *mut HHEADERROW__) -> windows_core::Result<()> {
23224 unsafe {
23225 (windows_core::Interface::vtable(self).DeleteRow)(
23226 windows_core::Interface::as_raw(self),
23227 hrow as _,
23228 )
23229 .ok()
23230 }
23231 }
23232 pub unsafe fn GetRowData(
23233 &self,
23234 hrow: *mut HHEADERROW__,
23235 dwflags: u32,
23236 ppszdata: *mut windows_core::PSTR,
23237 pcchdata: *mut u32,
23238 ) -> windows_core::Result<()> {
23239 unsafe {
23240 (windows_core::Interface::vtable(self).GetRowData)(
23241 windows_core::Interface::as_raw(self),
23242 hrow as _,
23243 dwflags,
23244 ppszdata as _,
23245 pcchdata as _,
23246 )
23247 .ok()
23248 }
23249 }
23250 pub unsafe fn SetRowData<P2>(
23251 &self,
23252 hrow: *mut HHEADERROW__,
23253 dwflags: u32,
23254 pszdata: P2,
23255 cchdata: u32,
23256 ) -> windows_core::Result<()>
23257 where
23258 P2: windows_core::Param<windows_core::PCSTR>,
23259 {
23260 unsafe {
23261 (windows_core::Interface::vtable(self).SetRowData)(
23262 windows_core::Interface::as_raw(self),
23263 hrow as _,
23264 dwflags,
23265 pszdata.param().abi(),
23266 cchdata,
23267 )
23268 .ok()
23269 }
23270 }
23271 pub unsafe fn GetRowInfo(
23272 &self,
23273 hrow: *mut HHEADERROW__,
23274 pinfo: *mut HEADERROWINFO,
23275 ) -> windows_core::Result<()> {
23276 unsafe {
23277 (windows_core::Interface::vtable(self).GetRowInfo)(
23278 windows_core::Interface::as_raw(self),
23279 hrow as _,
23280 pinfo as _,
23281 )
23282 .ok()
23283 }
23284 }
23285 pub unsafe fn SetRowNumber(
23286 &self,
23287 hrow: *mut HHEADERROW__,
23288 dwrownumber: u32,
23289 ) -> windows_core::Result<()> {
23290 unsafe {
23291 (windows_core::Interface::vtable(self).SetRowNumber)(
23292 windows_core::Interface::as_raw(self),
23293 hrow as _,
23294 dwrownumber,
23295 )
23296 .ok()
23297 }
23298 }
23299 pub unsafe fn EnumRows<P0>(
23300 &self,
23301 pszheader: P0,
23302 dwflags: u32,
23303 ) -> windows_core::Result<IMimeEnumHeaderRows>
23304 where
23305 P0: windows_core::Param<windows_core::PCSTR>,
23306 {
23307 unsafe {
23308 let mut result__ = core::mem::zeroed();
23309 (windows_core::Interface::vtable(self).EnumRows)(
23310 windows_core::Interface::as_raw(self),
23311 pszheader.param().abi(),
23312 dwflags,
23313 &mut result__,
23314 )
23315 .and_then(|| windows_core::Type::from_abi(result__))
23316 }
23317 }
23318 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeHeaderTable> {
23319 unsafe {
23320 let mut result__ = core::mem::zeroed();
23321 (windows_core::Interface::vtable(self).Clone)(
23322 windows_core::Interface::as_raw(self),
23323 &mut result__,
23324 )
23325 .and_then(|| windows_core::Type::from_abi(result__))
23326 }
23327 }
23328 pub unsafe fn BindToObject(
23329 &self,
23330 riid: *const windows_core::GUID,
23331 ppvobject: *mut *mut core::ffi::c_void,
23332 ) -> windows_core::Result<()> {
23333 unsafe {
23334 (windows_core::Interface::vtable(self).BindToObject)(
23335 windows_core::Interface::as_raw(self),
23336 riid,
23337 ppvobject as _,
23338 )
23339 .ok()
23340 }
23341 }
23342}
23343#[repr(C)]
23344pub struct IMimeHeaderTable_Vtbl {
23345 pub base__: windows::Win32::System::Com::IPersistStream_Vtbl,
23346 pub Load: unsafe extern "system" fn(
23347 *mut core::ffi::c_void,
23348 *mut core::ffi::c_void,
23349 ) -> windows_core::HRESULT,
23350 pub Save: unsafe extern "system" fn(
23351 *mut core::ffi::c_void,
23352 *mut core::ffi::c_void,
23353 windows_core::BOOL,
23354 ) -> windows_core::HRESULT,
23355 pub GetSizeMax:
23356 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
23357 pub FindFirstRow: unsafe extern "system" fn(
23358 *mut core::ffi::c_void,
23359 *mut FINDHEADER,
23360 *mut *mut HHEADERROW__,
23361 ) -> windows_core::HRESULT,
23362 pub FindNextRow: unsafe extern "system" fn(
23363 *mut core::ffi::c_void,
23364 *mut FINDHEADER,
23365 *mut *mut HHEADERROW__,
23366 ) -> windows_core::HRESULT,
23367 pub CountRows: unsafe extern "system" fn(
23368 *mut core::ffi::c_void,
23369 windows_core::PCSTR,
23370 *mut u32,
23371 ) -> windows_core::HRESULT,
23372 pub AppendRow: unsafe extern "system" fn(
23373 *mut core::ffi::c_void,
23374 windows_core::PCSTR,
23375 u32,
23376 windows_core::PCSTR,
23377 u32,
23378 *mut *mut HHEADERROW__,
23379 ) -> windows_core::HRESULT,
23380 pub DeleteRow: unsafe extern "system" fn(
23381 *mut core::ffi::c_void,
23382 *mut HHEADERROW__,
23383 ) -> windows_core::HRESULT,
23384 pub GetRowData: unsafe extern "system" fn(
23385 *mut core::ffi::c_void,
23386 *mut HHEADERROW__,
23387 u32,
23388 *mut windows_core::PSTR,
23389 *mut u32,
23390 ) -> windows_core::HRESULT,
23391 pub SetRowData: unsafe extern "system" fn(
23392 *mut core::ffi::c_void,
23393 *mut HHEADERROW__,
23394 u32,
23395 windows_core::PCSTR,
23396 u32,
23397 ) -> windows_core::HRESULT,
23398 pub GetRowInfo: unsafe extern "system" fn(
23399 *mut core::ffi::c_void,
23400 *mut HHEADERROW__,
23401 *mut HEADERROWINFO,
23402 ) -> windows_core::HRESULT,
23403 pub SetRowNumber: unsafe extern "system" fn(
23404 *mut core::ffi::c_void,
23405 *mut HHEADERROW__,
23406 u32,
23407 ) -> windows_core::HRESULT,
23408 pub EnumRows: unsafe extern "system" fn(
23409 *mut core::ffi::c_void,
23410 windows_core::PCSTR,
23411 u32,
23412 *mut *mut core::ffi::c_void,
23413 ) -> windows_core::HRESULT,
23414 pub Clone: unsafe extern "system" fn(
23415 *mut core::ffi::c_void,
23416 *mut *mut core::ffi::c_void,
23417 ) -> windows_core::HRESULT,
23418 pub BindToObject: unsafe extern "system" fn(
23419 *mut core::ffi::c_void,
23420 *const windows_core::GUID,
23421 *mut *mut core::ffi::c_void,
23422 ) -> windows_core::HRESULT,
23423}
23424pub trait IMimeHeaderTable_Impl: windows::Win32::System::Com::IPersistStream_Impl {
23425 fn Load(
23426 &self,
23427 pstm: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
23428 ) -> windows_core::Result<()>;
23429 fn Save(
23430 &self,
23431 pstm: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
23432 fcleardirty: windows_core::BOOL,
23433 ) -> windows_core::Result<()>;
23434 fn GetSizeMax(&self) -> windows_core::Result<u64>;
23435 fn FindFirstRow(
23436 &self,
23437 pfindheader: *mut FINDHEADER,
23438 phrow: *mut *mut HHEADERROW__,
23439 ) -> windows_core::Result<()>;
23440 fn FindNextRow(
23441 &self,
23442 pfindheader: *mut FINDHEADER,
23443 phrow: *mut *mut HHEADERROW__,
23444 ) -> windows_core::Result<()>;
23445 fn CountRows(
23446 &self,
23447 pszheader: &windows_core::PCSTR,
23448 pcrows: *mut u32,
23449 ) -> windows_core::Result<()>;
23450 fn AppendRow(
23451 &self,
23452 pszheader: &windows_core::PCSTR,
23453 dwflags: u32,
23454 pszdata: &windows_core::PCSTR,
23455 cchdata: u32,
23456 phrow: *mut *mut HHEADERROW__,
23457 ) -> windows_core::Result<()>;
23458 fn DeleteRow(&self, hrow: *mut HHEADERROW__) -> windows_core::Result<()>;
23459 fn GetRowData(
23460 &self,
23461 hrow: *mut HHEADERROW__,
23462 dwflags: u32,
23463 ppszdata: *mut windows_core::PSTR,
23464 pcchdata: *mut u32,
23465 ) -> windows_core::Result<()>;
23466 fn SetRowData(
23467 &self,
23468 hrow: *mut HHEADERROW__,
23469 dwflags: u32,
23470 pszdata: &windows_core::PCSTR,
23471 cchdata: u32,
23472 ) -> windows_core::Result<()>;
23473 fn GetRowInfo(
23474 &self,
23475 hrow: *mut HHEADERROW__,
23476 pinfo: *mut HEADERROWINFO,
23477 ) -> windows_core::Result<()>;
23478 fn SetRowNumber(&self, hrow: *mut HHEADERROW__, dwrownumber: u32) -> windows_core::Result<()>;
23479 fn EnumRows(
23480 &self,
23481 pszheader: &windows_core::PCSTR,
23482 dwflags: u32,
23483 ) -> windows_core::Result<IMimeEnumHeaderRows>;
23484 fn Clone(&self) -> windows_core::Result<IMimeHeaderTable>;
23485 fn BindToObject(
23486 &self,
23487 riid: *const windows_core::GUID,
23488 ppvobject: *mut *mut core::ffi::c_void,
23489 ) -> windows_core::Result<()>;
23490}
23491impl IMimeHeaderTable_Vtbl {
23492 pub const fn new<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>() -> Self {
23493 unsafe extern "system" fn Load<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23494 this: *mut core::ffi::c_void,
23495 pstm: *mut core::ffi::c_void,
23496 ) -> windows_core::HRESULT {
23497 unsafe {
23498 let this: &Identity =
23499 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23500 IMimeHeaderTable_Impl::Load(this, core::mem::transmute_copy(&pstm)).into()
23501 }
23502 }
23503 unsafe extern "system" fn Save<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23504 this: *mut core::ffi::c_void,
23505 pstm: *mut core::ffi::c_void,
23506 fcleardirty: windows_core::BOOL,
23507 ) -> windows_core::HRESULT {
23508 unsafe {
23509 let this: &Identity =
23510 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23511 IMimeHeaderTable_Impl::Save(
23512 this,
23513 core::mem::transmute_copy(&pstm),
23514 core::mem::transmute_copy(&fcleardirty),
23515 )
23516 .into()
23517 }
23518 }
23519 unsafe extern "system" fn GetSizeMax<
23520 Identity: IMimeHeaderTable_Impl,
23521 const OFFSET: isize,
23522 >(
23523 this: *mut core::ffi::c_void,
23524 pcbsize: *mut u64,
23525 ) -> windows_core::HRESULT {
23526 unsafe {
23527 let this: &Identity =
23528 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23529 match IMimeHeaderTable_Impl::GetSizeMax(this) {
23530 Ok(ok__) => {
23531 pcbsize.write(core::mem::transmute(ok__));
23532 windows_core::HRESULT(0)
23533 }
23534 Err(err) => err.into(),
23535 }
23536 }
23537 }
23538 unsafe extern "system" fn FindFirstRow<
23539 Identity: IMimeHeaderTable_Impl,
23540 const OFFSET: isize,
23541 >(
23542 this: *mut core::ffi::c_void,
23543 pfindheader: *mut FINDHEADER,
23544 phrow: *mut *mut HHEADERROW__,
23545 ) -> windows_core::HRESULT {
23546 unsafe {
23547 let this: &Identity =
23548 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23549 IMimeHeaderTable_Impl::FindFirstRow(
23550 this,
23551 core::mem::transmute_copy(&pfindheader),
23552 core::mem::transmute_copy(&phrow),
23553 )
23554 .into()
23555 }
23556 }
23557 unsafe extern "system" fn FindNextRow<
23558 Identity: IMimeHeaderTable_Impl,
23559 const OFFSET: isize,
23560 >(
23561 this: *mut core::ffi::c_void,
23562 pfindheader: *mut FINDHEADER,
23563 phrow: *mut *mut HHEADERROW__,
23564 ) -> windows_core::HRESULT {
23565 unsafe {
23566 let this: &Identity =
23567 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23568 IMimeHeaderTable_Impl::FindNextRow(
23569 this,
23570 core::mem::transmute_copy(&pfindheader),
23571 core::mem::transmute_copy(&phrow),
23572 )
23573 .into()
23574 }
23575 }
23576 unsafe extern "system" fn CountRows<
23577 Identity: IMimeHeaderTable_Impl,
23578 const OFFSET: isize,
23579 >(
23580 this: *mut core::ffi::c_void,
23581 pszheader: windows_core::PCSTR,
23582 pcrows: *mut u32,
23583 ) -> windows_core::HRESULT {
23584 unsafe {
23585 let this: &Identity =
23586 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23587 IMimeHeaderTable_Impl::CountRows(
23588 this,
23589 core::mem::transmute(&pszheader),
23590 core::mem::transmute_copy(&pcrows),
23591 )
23592 .into()
23593 }
23594 }
23595 unsafe extern "system" fn AppendRow<
23596 Identity: IMimeHeaderTable_Impl,
23597 const OFFSET: isize,
23598 >(
23599 this: *mut core::ffi::c_void,
23600 pszheader: windows_core::PCSTR,
23601 dwflags: u32,
23602 pszdata: windows_core::PCSTR,
23603 cchdata: u32,
23604 phrow: *mut *mut HHEADERROW__,
23605 ) -> windows_core::HRESULT {
23606 unsafe {
23607 let this: &Identity =
23608 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23609 IMimeHeaderTable_Impl::AppendRow(
23610 this,
23611 core::mem::transmute(&pszheader),
23612 core::mem::transmute_copy(&dwflags),
23613 core::mem::transmute(&pszdata),
23614 core::mem::transmute_copy(&cchdata),
23615 core::mem::transmute_copy(&phrow),
23616 )
23617 .into()
23618 }
23619 }
23620 unsafe extern "system" fn DeleteRow<
23621 Identity: IMimeHeaderTable_Impl,
23622 const OFFSET: isize,
23623 >(
23624 this: *mut core::ffi::c_void,
23625 hrow: *mut HHEADERROW__,
23626 ) -> windows_core::HRESULT {
23627 unsafe {
23628 let this: &Identity =
23629 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23630 IMimeHeaderTable_Impl::DeleteRow(this, core::mem::transmute_copy(&hrow)).into()
23631 }
23632 }
23633 unsafe extern "system" fn GetRowData<
23634 Identity: IMimeHeaderTable_Impl,
23635 const OFFSET: isize,
23636 >(
23637 this: *mut core::ffi::c_void,
23638 hrow: *mut HHEADERROW__,
23639 dwflags: u32,
23640 ppszdata: *mut windows_core::PSTR,
23641 pcchdata: *mut u32,
23642 ) -> windows_core::HRESULT {
23643 unsafe {
23644 let this: &Identity =
23645 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23646 IMimeHeaderTable_Impl::GetRowData(
23647 this,
23648 core::mem::transmute_copy(&hrow),
23649 core::mem::transmute_copy(&dwflags),
23650 core::mem::transmute_copy(&ppszdata),
23651 core::mem::transmute_copy(&pcchdata),
23652 )
23653 .into()
23654 }
23655 }
23656 unsafe extern "system" fn SetRowData<
23657 Identity: IMimeHeaderTable_Impl,
23658 const OFFSET: isize,
23659 >(
23660 this: *mut core::ffi::c_void,
23661 hrow: *mut HHEADERROW__,
23662 dwflags: u32,
23663 pszdata: windows_core::PCSTR,
23664 cchdata: u32,
23665 ) -> windows_core::HRESULT {
23666 unsafe {
23667 let this: &Identity =
23668 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23669 IMimeHeaderTable_Impl::SetRowData(
23670 this,
23671 core::mem::transmute_copy(&hrow),
23672 core::mem::transmute_copy(&dwflags),
23673 core::mem::transmute(&pszdata),
23674 core::mem::transmute_copy(&cchdata),
23675 )
23676 .into()
23677 }
23678 }
23679 unsafe extern "system" fn GetRowInfo<
23680 Identity: IMimeHeaderTable_Impl,
23681 const OFFSET: isize,
23682 >(
23683 this: *mut core::ffi::c_void,
23684 hrow: *mut HHEADERROW__,
23685 pinfo: *mut HEADERROWINFO,
23686 ) -> windows_core::HRESULT {
23687 unsafe {
23688 let this: &Identity =
23689 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23690 IMimeHeaderTable_Impl::GetRowInfo(
23691 this,
23692 core::mem::transmute_copy(&hrow),
23693 core::mem::transmute_copy(&pinfo),
23694 )
23695 .into()
23696 }
23697 }
23698 unsafe extern "system" fn SetRowNumber<
23699 Identity: IMimeHeaderTable_Impl,
23700 const OFFSET: isize,
23701 >(
23702 this: *mut core::ffi::c_void,
23703 hrow: *mut HHEADERROW__,
23704 dwrownumber: u32,
23705 ) -> windows_core::HRESULT {
23706 unsafe {
23707 let this: &Identity =
23708 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23709 IMimeHeaderTable_Impl::SetRowNumber(
23710 this,
23711 core::mem::transmute_copy(&hrow),
23712 core::mem::transmute_copy(&dwrownumber),
23713 )
23714 .into()
23715 }
23716 }
23717 unsafe extern "system" fn EnumRows<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23718 this: *mut core::ffi::c_void,
23719 pszheader: windows_core::PCSTR,
23720 dwflags: u32,
23721 ppenum: *mut *mut core::ffi::c_void,
23722 ) -> windows_core::HRESULT {
23723 unsafe {
23724 let this: &Identity =
23725 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23726 match IMimeHeaderTable_Impl::EnumRows(
23727 this,
23728 core::mem::transmute(&pszheader),
23729 core::mem::transmute_copy(&dwflags),
23730 ) {
23731 Ok(ok__) => {
23732 ppenum.write(core::mem::transmute(ok__));
23733 windows_core::HRESULT(0)
23734 }
23735 Err(err) => err.into(),
23736 }
23737 }
23738 }
23739 unsafe extern "system" fn Clone<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23740 this: *mut core::ffi::c_void,
23741 pptable: *mut *mut core::ffi::c_void,
23742 ) -> windows_core::HRESULT {
23743 unsafe {
23744 let this: &Identity =
23745 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23746 match IMimeHeaderTable_Impl::Clone(this) {
23747 Ok(ok__) => {
23748 pptable.write(core::mem::transmute(ok__));
23749 windows_core::HRESULT(0)
23750 }
23751 Err(err) => err.into(),
23752 }
23753 }
23754 }
23755 unsafe extern "system" fn BindToObject<
23756 Identity: IMimeHeaderTable_Impl,
23757 const OFFSET: isize,
23758 >(
23759 this: *mut core::ffi::c_void,
23760 riid: *const windows_core::GUID,
23761 ppvobject: *mut *mut core::ffi::c_void,
23762 ) -> windows_core::HRESULT {
23763 unsafe {
23764 let this: &Identity =
23765 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23766 IMimeHeaderTable_Impl::BindToObject(
23767 this,
23768 core::mem::transmute_copy(&riid),
23769 core::mem::transmute_copy(&ppvobject),
23770 )
23771 .into()
23772 }
23773 }
23774 Self {
23775 base__: windows::Win32::System::Com::IPersistStream_Vtbl::new::<Identity, OFFSET>(),
23776 Load: Load::<Identity, OFFSET>,
23777 Save: Save::<Identity, OFFSET>,
23778 GetSizeMax: GetSizeMax::<Identity, OFFSET>,
23779 FindFirstRow: FindFirstRow::<Identity, OFFSET>,
23780 FindNextRow: FindNextRow::<Identity, OFFSET>,
23781 CountRows: CountRows::<Identity, OFFSET>,
23782 AppendRow: AppendRow::<Identity, OFFSET>,
23783 DeleteRow: DeleteRow::<Identity, OFFSET>,
23784 GetRowData: GetRowData::<Identity, OFFSET>,
23785 SetRowData: SetRowData::<Identity, OFFSET>,
23786 GetRowInfo: GetRowInfo::<Identity, OFFSET>,
23787 SetRowNumber: SetRowNumber::<Identity, OFFSET>,
23788 EnumRows: EnumRows::<Identity, OFFSET>,
23789 Clone: Clone::<Identity, OFFSET>,
23790 BindToObject: BindToObject::<Identity, OFFSET>,
23791 }
23792 }
23793 pub fn matches(iid: &windows_core::GUID) -> bool {
23794 iid == &<IMimeHeaderTable as windows_core::Interface>::IID
23795 || iid == &<windows::Win32::System::Com::IPersist as windows_core::Interface>::IID
23796 || iid == &<windows::Win32::System::Com::IPersistStream as windows_core::Interface>::IID
23797 }
23798}
23799impl windows_core::RuntimeName for IMimeHeaderTable {}
23800windows_core::imp::define_interface!(
23801 IMimeInternational,
23802 IMimeInternational_Vtbl,
23803 0xc5588349_7f86_11d0_8252_00c04fd85ab4
23804);
23805windows_core::imp::interface_hierarchy!(IMimeInternational, windows_core::IUnknown);
23806impl IMimeInternational {
23807 pub unsafe fn SetDefaultCharset(&self, hcharset: *mut HCHARSET__) -> windows_core::Result<()> {
23808 unsafe {
23809 (windows_core::Interface::vtable(self).SetDefaultCharset)(
23810 windows_core::Interface::as_raw(self),
23811 hcharset as _,
23812 )
23813 .ok()
23814 }
23815 }
23816 pub unsafe fn GetDefaultCharset(
23817 &self,
23818 phcharset: *mut *mut HCHARSET__,
23819 ) -> windows_core::Result<()> {
23820 unsafe {
23821 (windows_core::Interface::vtable(self).GetDefaultCharset)(
23822 windows_core::Interface::as_raw(self),
23823 phcharset as _,
23824 )
23825 .ok()
23826 }
23827 }
23828 pub unsafe fn GetCodePageCharset(
23829 &self,
23830 cpicodepage: u32,
23831 ctcsettype: CHARSETTYPE,
23832 phcharset: *mut *mut HCHARSET__,
23833 ) -> windows_core::Result<()> {
23834 unsafe {
23835 (windows_core::Interface::vtable(self).GetCodePageCharset)(
23836 windows_core::Interface::as_raw(self),
23837 cpicodepage,
23838 ctcsettype,
23839 phcharset as _,
23840 )
23841 .ok()
23842 }
23843 }
23844 pub unsafe fn FindCharset<P0>(
23845 &self,
23846 pszcharset: P0,
23847 phcharset: *mut *mut HCHARSET__,
23848 ) -> windows_core::Result<()>
23849 where
23850 P0: windows_core::Param<windows_core::PCSTR>,
23851 {
23852 unsafe {
23853 (windows_core::Interface::vtable(self).FindCharset)(
23854 windows_core::Interface::as_raw(self),
23855 pszcharset.param().abi(),
23856 phcharset as _,
23857 )
23858 .ok()
23859 }
23860 }
23861 pub unsafe fn GetCharsetInfo(
23862 &self,
23863 hcharset: *mut HCHARSET__,
23864 pcsetinfo: *mut INETCSETINFO,
23865 ) -> windows_core::Result<()> {
23866 unsafe {
23867 (windows_core::Interface::vtable(self).GetCharsetInfo)(
23868 windows_core::Interface::as_raw(self),
23869 hcharset as _,
23870 pcsetinfo as _,
23871 )
23872 .ok()
23873 }
23874 }
23875 pub unsafe fn GetCodePageInfo(
23876 &self,
23877 cpicodepage: u32,
23878 pcodepageinfo: *mut CODEPAGEINFO,
23879 ) -> windows_core::Result<()> {
23880 unsafe {
23881 (windows_core::Interface::vtable(self).GetCodePageInfo)(
23882 windows_core::Interface::as_raw(self),
23883 cpicodepage,
23884 pcodepageinfo as _,
23885 )
23886 .ok()
23887 }
23888 }
23889 pub unsafe fn CanConvertCodePages(
23890 &self,
23891 cpisource: u32,
23892 cpidest: u32,
23893 ) -> windows_core::Result<()> {
23894 unsafe {
23895 (windows_core::Interface::vtable(self).CanConvertCodePages)(
23896 windows_core::Interface::as_raw(self),
23897 cpisource,
23898 cpidest,
23899 )
23900 .ok()
23901 }
23902 }
23903 pub unsafe fn DecodeHeader<P1>(
23904 &self,
23905 hcharset: *mut HCHARSET__,
23906 pszdata: P1,
23907 pdecoded: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23908 prfc1522info: *mut RFC1522INFO,
23909 ) -> windows_core::Result<()>
23910 where
23911 P1: windows_core::Param<windows_core::PCSTR>,
23912 {
23913 unsafe {
23914 (windows_core::Interface::vtable(self).DecodeHeader)(
23915 windows_core::Interface::as_raw(self),
23916 hcharset as _,
23917 pszdata.param().abi(),
23918 core::mem::transmute(pdecoded),
23919 prfc1522info as _,
23920 )
23921 .ok()
23922 }
23923 }
23924 pub unsafe fn EncodeHeader(
23925 &self,
23926 hcharset: *mut HCHARSET__,
23927 pdata: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23928 ppszencoded: *mut windows_core::PSTR,
23929 prfc1522info: *mut RFC1522INFO,
23930 ) -> windows_core::Result<()> {
23931 unsafe {
23932 (windows_core::Interface::vtable(self).EncodeHeader)(
23933 windows_core::Interface::as_raw(self),
23934 hcharset as _,
23935 core::mem::transmute(pdata),
23936 ppszencoded as _,
23937 prfc1522info as _,
23938 )
23939 .ok()
23940 }
23941 }
23942 pub unsafe fn ConvertBuffer(
23943 &self,
23944 cpisource: u32,
23945 cpidest: u32,
23946 pin: *mut windows::Win32::System::Com::BLOB,
23947 pout: *mut windows::Win32::System::Com::BLOB,
23948 pcbread: *mut u32,
23949 ) -> windows_core::Result<()> {
23950 unsafe {
23951 (windows_core::Interface::vtable(self).ConvertBuffer)(
23952 windows_core::Interface::as_raw(self),
23953 cpisource,
23954 cpidest,
23955 pin as _,
23956 pout as _,
23957 pcbread as _,
23958 )
23959 .ok()
23960 }
23961 }
23962 pub unsafe fn ConvertString(
23963 &self,
23964 cpisource: u32,
23965 cpidest: u32,
23966 pin: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23967 pout: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23968 ) -> windows_core::Result<()> {
23969 unsafe {
23970 (windows_core::Interface::vtable(self).ConvertString)(
23971 windows_core::Interface::as_raw(self),
23972 cpisource,
23973 cpidest,
23974 core::mem::transmute(pin),
23975 core::mem::transmute(pout),
23976 )
23977 .ok()
23978 }
23979 }
23980 pub unsafe fn MLANG_ConvertInetReset(&self) -> windows_core::Result<()> {
23981 unsafe {
23982 (windows_core::Interface::vtable(self).MLANG_ConvertInetReset)(
23983 windows_core::Interface::as_raw(self),
23984 )
23985 .ok()
23986 }
23987 }
23988 pub unsafe fn MLANG_ConvertInetString<P2, P4>(
23989 &self,
23990 cpisource: u32,
23991 cpidest: u32,
23992 psource: P2,
23993 pnsizeofsource: *mut i32,
23994 pdestination: P4,
23995 pndstsize: *mut i32,
23996 ) -> windows_core::Result<()>
23997 where
23998 P2: windows_core::Param<windows_core::PCSTR>,
23999 P4: windows_core::Param<windows_core::PCSTR>,
24000 {
24001 unsafe {
24002 (windows_core::Interface::vtable(self).MLANG_ConvertInetString)(
24003 windows_core::Interface::as_raw(self),
24004 cpisource,
24005 cpidest,
24006 psource.param().abi(),
24007 pnsizeofsource as _,
24008 pdestination.param().abi(),
24009 pndstsize as _,
24010 )
24011 .ok()
24012 }
24013 }
24014 pub unsafe fn Rfc1522Decode<P0, P1>(
24015 &self,
24016 pszvalue: P0,
24017 pszcharset: P1,
24018 cchmax: u32,
24019 ppszdecoded: *mut windows_core::PSTR,
24020 ) -> windows_core::Result<()>
24021 where
24022 P0: windows_core::Param<windows_core::PCSTR>,
24023 P1: windows_core::Param<windows_core::PCSTR>,
24024 {
24025 unsafe {
24026 (windows_core::Interface::vtable(self).Rfc1522Decode)(
24027 windows_core::Interface::as_raw(self),
24028 pszvalue.param().abi(),
24029 pszcharset.param().abi(),
24030 cchmax,
24031 ppszdecoded as _,
24032 )
24033 .ok()
24034 }
24035 }
24036 pub unsafe fn Rfc1522Encode<P0>(
24037 &self,
24038 pszvalue: P0,
24039 hcharset: *mut HCHARSET__,
24040 ppszencoded: *mut windows_core::PSTR,
24041 ) -> windows_core::Result<()>
24042 where
24043 P0: windows_core::Param<windows_core::PCSTR>,
24044 {
24045 unsafe {
24046 (windows_core::Interface::vtable(self).Rfc1522Encode)(
24047 windows_core::Interface::as_raw(self),
24048 pszvalue.param().abi(),
24049 hcharset as _,
24050 ppszencoded as _,
24051 )
24052 .ok()
24053 }
24054 }
24055}
24056#[repr(C)]
24057pub struct IMimeInternational_Vtbl {
24058 pub base__: windows_core::IUnknown_Vtbl,
24059 pub SetDefaultCharset:
24060 unsafe extern "system" fn(*mut core::ffi::c_void, *mut HCHARSET__) -> windows_core::HRESULT,
24061 pub GetDefaultCharset: unsafe extern "system" fn(
24062 *mut core::ffi::c_void,
24063 *mut *mut HCHARSET__,
24064 ) -> windows_core::HRESULT,
24065 pub GetCodePageCharset: unsafe extern "system" fn(
24066 *mut core::ffi::c_void,
24067 u32,
24068 CHARSETTYPE,
24069 *mut *mut HCHARSET__,
24070 ) -> windows_core::HRESULT,
24071 pub FindCharset: unsafe extern "system" fn(
24072 *mut core::ffi::c_void,
24073 windows_core::PCSTR,
24074 *mut *mut HCHARSET__,
24075 ) -> windows_core::HRESULT,
24076 pub GetCharsetInfo: unsafe extern "system" fn(
24077 *mut core::ffi::c_void,
24078 *mut HCHARSET__,
24079 *mut INETCSETINFO,
24080 ) -> windows_core::HRESULT,
24081 pub GetCodePageInfo: unsafe extern "system" fn(
24082 *mut core::ffi::c_void,
24083 u32,
24084 *mut CODEPAGEINFO,
24085 ) -> windows_core::HRESULT,
24086 pub CanConvertCodePages:
24087 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
24088 pub DecodeHeader: unsafe extern "system" fn(
24089 *mut core::ffi::c_void,
24090 *mut HCHARSET__,
24091 windows_core::PCSTR,
24092 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24093 *mut RFC1522INFO,
24094 ) -> windows_core::HRESULT,
24095 pub EncodeHeader: unsafe extern "system" fn(
24096 *mut core::ffi::c_void,
24097 *mut HCHARSET__,
24098 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24099 *mut windows_core::PSTR,
24100 *mut RFC1522INFO,
24101 ) -> windows_core::HRESULT,
24102 pub ConvertBuffer: unsafe extern "system" fn(
24103 *mut core::ffi::c_void,
24104 u32,
24105 u32,
24106 *mut windows::Win32::System::Com::BLOB,
24107 *mut windows::Win32::System::Com::BLOB,
24108 *mut u32,
24109 ) -> windows_core::HRESULT,
24110 pub ConvertString: unsafe extern "system" fn(
24111 *mut core::ffi::c_void,
24112 u32,
24113 u32,
24114 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24115 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24116 ) -> windows_core::HRESULT,
24117 pub MLANG_ConvertInetReset:
24118 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
24119 pub MLANG_ConvertInetString: unsafe extern "system" fn(
24120 *mut core::ffi::c_void,
24121 u32,
24122 u32,
24123 windows_core::PCSTR,
24124 *mut i32,
24125 windows_core::PCSTR,
24126 *mut i32,
24127 ) -> windows_core::HRESULT,
24128 pub Rfc1522Decode: unsafe extern "system" fn(
24129 *mut core::ffi::c_void,
24130 windows_core::PCSTR,
24131 windows_core::PCSTR,
24132 u32,
24133 *mut windows_core::PSTR,
24134 ) -> windows_core::HRESULT,
24135 pub Rfc1522Encode: unsafe extern "system" fn(
24136 *mut core::ffi::c_void,
24137 windows_core::PCSTR,
24138 *mut HCHARSET__,
24139 *mut windows_core::PSTR,
24140 ) -> windows_core::HRESULT,
24141}
24142pub trait IMimeInternational_Impl: windows_core::IUnknownImpl {
24143 fn SetDefaultCharset(&self, hcharset: *mut HCHARSET__) -> windows_core::Result<()>;
24144 fn GetDefaultCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()>;
24145 fn GetCodePageCharset(
24146 &self,
24147 cpicodepage: u32,
24148 ctcsettype: CHARSETTYPE,
24149 phcharset: *mut *mut HCHARSET__,
24150 ) -> windows_core::Result<()>;
24151 fn FindCharset(
24152 &self,
24153 pszcharset: &windows_core::PCSTR,
24154 phcharset: *mut *mut HCHARSET__,
24155 ) -> windows_core::Result<()>;
24156 fn GetCharsetInfo(
24157 &self,
24158 hcharset: *mut HCHARSET__,
24159 pcsetinfo: *mut INETCSETINFO,
24160 ) -> windows_core::Result<()>;
24161 fn GetCodePageInfo(
24162 &self,
24163 cpicodepage: u32,
24164 pcodepageinfo: *mut CODEPAGEINFO,
24165 ) -> windows_core::Result<()>;
24166 fn CanConvertCodePages(&self, cpisource: u32, cpidest: u32) -> windows_core::Result<()>;
24167 fn DecodeHeader(
24168 &self,
24169 hcharset: *mut HCHARSET__,
24170 pszdata: &windows_core::PCSTR,
24171 pdecoded: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24172 prfc1522info: *mut RFC1522INFO,
24173 ) -> windows_core::Result<()>;
24174 fn EncodeHeader(
24175 &self,
24176 hcharset: *mut HCHARSET__,
24177 pdata: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24178 ppszencoded: *mut windows_core::PSTR,
24179 prfc1522info: *mut RFC1522INFO,
24180 ) -> windows_core::Result<()>;
24181 fn ConvertBuffer(
24182 &self,
24183 cpisource: u32,
24184 cpidest: u32,
24185 pin: *mut windows::Win32::System::Com::BLOB,
24186 pout: *mut windows::Win32::System::Com::BLOB,
24187 pcbread: *mut u32,
24188 ) -> windows_core::Result<()>;
24189 fn ConvertString(
24190 &self,
24191 cpisource: u32,
24192 cpidest: u32,
24193 pin: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24194 pout: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24195 ) -> windows_core::Result<()>;
24196 fn MLANG_ConvertInetReset(&self) -> windows_core::Result<()>;
24197 fn MLANG_ConvertInetString(
24198 &self,
24199 cpisource: u32,
24200 cpidest: u32,
24201 psource: &windows_core::PCSTR,
24202 pnsizeofsource: *mut i32,
24203 pdestination: &windows_core::PCSTR,
24204 pndstsize: *mut i32,
24205 ) -> windows_core::Result<()>;
24206 fn Rfc1522Decode(
24207 &self,
24208 pszvalue: &windows_core::PCSTR,
24209 pszcharset: &windows_core::PCSTR,
24210 cchmax: u32,
24211 ppszdecoded: *mut windows_core::PSTR,
24212 ) -> windows_core::Result<()>;
24213 fn Rfc1522Encode(
24214 &self,
24215 pszvalue: &windows_core::PCSTR,
24216 hcharset: *mut HCHARSET__,
24217 ppszencoded: *mut windows_core::PSTR,
24218 ) -> windows_core::Result<()>;
24219}
24220impl IMimeInternational_Vtbl {
24221 pub const fn new<Identity: IMimeInternational_Impl, const OFFSET: isize>() -> Self {
24222 unsafe extern "system" fn SetDefaultCharset<
24223 Identity: IMimeInternational_Impl,
24224 const OFFSET: isize,
24225 >(
24226 this: *mut core::ffi::c_void,
24227 hcharset: *mut HCHARSET__,
24228 ) -> windows_core::HRESULT {
24229 unsafe {
24230 let this: &Identity =
24231 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24232 IMimeInternational_Impl::SetDefaultCharset(
24233 this,
24234 core::mem::transmute_copy(&hcharset),
24235 )
24236 .into()
24237 }
24238 }
24239 unsafe extern "system" fn GetDefaultCharset<
24240 Identity: IMimeInternational_Impl,
24241 const OFFSET: isize,
24242 >(
24243 this: *mut core::ffi::c_void,
24244 phcharset: *mut *mut HCHARSET__,
24245 ) -> windows_core::HRESULT {
24246 unsafe {
24247 let this: &Identity =
24248 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24249 IMimeInternational_Impl::GetDefaultCharset(
24250 this,
24251 core::mem::transmute_copy(&phcharset),
24252 )
24253 .into()
24254 }
24255 }
24256 unsafe extern "system" fn GetCodePageCharset<
24257 Identity: IMimeInternational_Impl,
24258 const OFFSET: isize,
24259 >(
24260 this: *mut core::ffi::c_void,
24261 cpicodepage: u32,
24262 ctcsettype: CHARSETTYPE,
24263 phcharset: *mut *mut HCHARSET__,
24264 ) -> windows_core::HRESULT {
24265 unsafe {
24266 let this: &Identity =
24267 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24268 IMimeInternational_Impl::GetCodePageCharset(
24269 this,
24270 core::mem::transmute_copy(&cpicodepage),
24271 core::mem::transmute_copy(&ctcsettype),
24272 core::mem::transmute_copy(&phcharset),
24273 )
24274 .into()
24275 }
24276 }
24277 unsafe extern "system" fn FindCharset<
24278 Identity: IMimeInternational_Impl,
24279 const OFFSET: isize,
24280 >(
24281 this: *mut core::ffi::c_void,
24282 pszcharset: windows_core::PCSTR,
24283 phcharset: *mut *mut HCHARSET__,
24284 ) -> windows_core::HRESULT {
24285 unsafe {
24286 let this: &Identity =
24287 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24288 IMimeInternational_Impl::FindCharset(
24289 this,
24290 core::mem::transmute(&pszcharset),
24291 core::mem::transmute_copy(&phcharset),
24292 )
24293 .into()
24294 }
24295 }
24296 unsafe extern "system" fn GetCharsetInfo<
24297 Identity: IMimeInternational_Impl,
24298 const OFFSET: isize,
24299 >(
24300 this: *mut core::ffi::c_void,
24301 hcharset: *mut HCHARSET__,
24302 pcsetinfo: *mut INETCSETINFO,
24303 ) -> windows_core::HRESULT {
24304 unsafe {
24305 let this: &Identity =
24306 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24307 IMimeInternational_Impl::GetCharsetInfo(
24308 this,
24309 core::mem::transmute_copy(&hcharset),
24310 core::mem::transmute_copy(&pcsetinfo),
24311 )
24312 .into()
24313 }
24314 }
24315 unsafe extern "system" fn GetCodePageInfo<
24316 Identity: IMimeInternational_Impl,
24317 const OFFSET: isize,
24318 >(
24319 this: *mut core::ffi::c_void,
24320 cpicodepage: u32,
24321 pcodepageinfo: *mut CODEPAGEINFO,
24322 ) -> windows_core::HRESULT {
24323 unsafe {
24324 let this: &Identity =
24325 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24326 IMimeInternational_Impl::GetCodePageInfo(
24327 this,
24328 core::mem::transmute_copy(&cpicodepage),
24329 core::mem::transmute_copy(&pcodepageinfo),
24330 )
24331 .into()
24332 }
24333 }
24334 unsafe extern "system" fn CanConvertCodePages<
24335 Identity: IMimeInternational_Impl,
24336 const OFFSET: isize,
24337 >(
24338 this: *mut core::ffi::c_void,
24339 cpisource: u32,
24340 cpidest: u32,
24341 ) -> windows_core::HRESULT {
24342 unsafe {
24343 let this: &Identity =
24344 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24345 IMimeInternational_Impl::CanConvertCodePages(
24346 this,
24347 core::mem::transmute_copy(&cpisource),
24348 core::mem::transmute_copy(&cpidest),
24349 )
24350 .into()
24351 }
24352 }
24353 unsafe extern "system" fn DecodeHeader<
24354 Identity: IMimeInternational_Impl,
24355 const OFFSET: isize,
24356 >(
24357 this: *mut core::ffi::c_void,
24358 hcharset: *mut HCHARSET__,
24359 pszdata: windows_core::PCSTR,
24360 pdecoded: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24361 prfc1522info: *mut RFC1522INFO,
24362 ) -> windows_core::HRESULT {
24363 unsafe {
24364 let this: &Identity =
24365 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24366 IMimeInternational_Impl::DecodeHeader(
24367 this,
24368 core::mem::transmute_copy(&hcharset),
24369 core::mem::transmute(&pszdata),
24370 core::mem::transmute_copy(&pdecoded),
24371 core::mem::transmute_copy(&prfc1522info),
24372 )
24373 .into()
24374 }
24375 }
24376 unsafe extern "system" fn EncodeHeader<
24377 Identity: IMimeInternational_Impl,
24378 const OFFSET: isize,
24379 >(
24380 this: *mut core::ffi::c_void,
24381 hcharset: *mut HCHARSET__,
24382 pdata: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24383 ppszencoded: *mut windows_core::PSTR,
24384 prfc1522info: *mut RFC1522INFO,
24385 ) -> windows_core::HRESULT {
24386 unsafe {
24387 let this: &Identity =
24388 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24389 IMimeInternational_Impl::EncodeHeader(
24390 this,
24391 core::mem::transmute_copy(&hcharset),
24392 core::mem::transmute_copy(&pdata),
24393 core::mem::transmute_copy(&ppszencoded),
24394 core::mem::transmute_copy(&prfc1522info),
24395 )
24396 .into()
24397 }
24398 }
24399 unsafe extern "system" fn ConvertBuffer<
24400 Identity: IMimeInternational_Impl,
24401 const OFFSET: isize,
24402 >(
24403 this: *mut core::ffi::c_void,
24404 cpisource: u32,
24405 cpidest: u32,
24406 pin: *mut windows::Win32::System::Com::BLOB,
24407 pout: *mut windows::Win32::System::Com::BLOB,
24408 pcbread: *mut u32,
24409 ) -> windows_core::HRESULT {
24410 unsafe {
24411 let this: &Identity =
24412 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24413 IMimeInternational_Impl::ConvertBuffer(
24414 this,
24415 core::mem::transmute_copy(&cpisource),
24416 core::mem::transmute_copy(&cpidest),
24417 core::mem::transmute_copy(&pin),
24418 core::mem::transmute_copy(&pout),
24419 core::mem::transmute_copy(&pcbread),
24420 )
24421 .into()
24422 }
24423 }
24424 unsafe extern "system" fn ConvertString<
24425 Identity: IMimeInternational_Impl,
24426 const OFFSET: isize,
24427 >(
24428 this: *mut core::ffi::c_void,
24429 cpisource: u32,
24430 cpidest: u32,
24431 pin: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24432 pout: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24433 ) -> windows_core::HRESULT {
24434 unsafe {
24435 let this: &Identity =
24436 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24437 IMimeInternational_Impl::ConvertString(
24438 this,
24439 core::mem::transmute_copy(&cpisource),
24440 core::mem::transmute_copy(&cpidest),
24441 core::mem::transmute_copy(&pin),
24442 core::mem::transmute_copy(&pout),
24443 )
24444 .into()
24445 }
24446 }
24447 unsafe extern "system" fn MLANG_ConvertInetReset<
24448 Identity: IMimeInternational_Impl,
24449 const OFFSET: isize,
24450 >(
24451 this: *mut core::ffi::c_void,
24452 ) -> windows_core::HRESULT {
24453 unsafe {
24454 let this: &Identity =
24455 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24456 IMimeInternational_Impl::MLANG_ConvertInetReset(this).into()
24457 }
24458 }
24459 unsafe extern "system" fn MLANG_ConvertInetString<
24460 Identity: IMimeInternational_Impl,
24461 const OFFSET: isize,
24462 >(
24463 this: *mut core::ffi::c_void,
24464 cpisource: u32,
24465 cpidest: u32,
24466 psource: windows_core::PCSTR,
24467 pnsizeofsource: *mut i32,
24468 pdestination: windows_core::PCSTR,
24469 pndstsize: *mut i32,
24470 ) -> windows_core::HRESULT {
24471 unsafe {
24472 let this: &Identity =
24473 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24474 IMimeInternational_Impl::MLANG_ConvertInetString(
24475 this,
24476 core::mem::transmute_copy(&cpisource),
24477 core::mem::transmute_copy(&cpidest),
24478 core::mem::transmute(&psource),
24479 core::mem::transmute_copy(&pnsizeofsource),
24480 core::mem::transmute(&pdestination),
24481 core::mem::transmute_copy(&pndstsize),
24482 )
24483 .into()
24484 }
24485 }
24486 unsafe extern "system" fn Rfc1522Decode<
24487 Identity: IMimeInternational_Impl,
24488 const OFFSET: isize,
24489 >(
24490 this: *mut core::ffi::c_void,
24491 pszvalue: windows_core::PCSTR,
24492 pszcharset: windows_core::PCSTR,
24493 cchmax: u32,
24494 ppszdecoded: *mut windows_core::PSTR,
24495 ) -> windows_core::HRESULT {
24496 unsafe {
24497 let this: &Identity =
24498 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24499 IMimeInternational_Impl::Rfc1522Decode(
24500 this,
24501 core::mem::transmute(&pszvalue),
24502 core::mem::transmute(&pszcharset),
24503 core::mem::transmute_copy(&cchmax),
24504 core::mem::transmute_copy(&ppszdecoded),
24505 )
24506 .into()
24507 }
24508 }
24509 unsafe extern "system" fn Rfc1522Encode<
24510 Identity: IMimeInternational_Impl,
24511 const OFFSET: isize,
24512 >(
24513 this: *mut core::ffi::c_void,
24514 pszvalue: windows_core::PCSTR,
24515 hcharset: *mut HCHARSET__,
24516 ppszencoded: *mut windows_core::PSTR,
24517 ) -> windows_core::HRESULT {
24518 unsafe {
24519 let this: &Identity =
24520 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24521 IMimeInternational_Impl::Rfc1522Encode(
24522 this,
24523 core::mem::transmute(&pszvalue),
24524 core::mem::transmute_copy(&hcharset),
24525 core::mem::transmute_copy(&ppszencoded),
24526 )
24527 .into()
24528 }
24529 }
24530 Self {
24531 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24532 SetDefaultCharset: SetDefaultCharset::<Identity, OFFSET>,
24533 GetDefaultCharset: GetDefaultCharset::<Identity, OFFSET>,
24534 GetCodePageCharset: GetCodePageCharset::<Identity, OFFSET>,
24535 FindCharset: FindCharset::<Identity, OFFSET>,
24536 GetCharsetInfo: GetCharsetInfo::<Identity, OFFSET>,
24537 GetCodePageInfo: GetCodePageInfo::<Identity, OFFSET>,
24538 CanConvertCodePages: CanConvertCodePages::<Identity, OFFSET>,
24539 DecodeHeader: DecodeHeader::<Identity, OFFSET>,
24540 EncodeHeader: EncodeHeader::<Identity, OFFSET>,
24541 ConvertBuffer: ConvertBuffer::<Identity, OFFSET>,
24542 ConvertString: ConvertString::<Identity, OFFSET>,
24543 MLANG_ConvertInetReset: MLANG_ConvertInetReset::<Identity, OFFSET>,
24544 MLANG_ConvertInetString: MLANG_ConvertInetString::<Identity, OFFSET>,
24545 Rfc1522Decode: Rfc1522Decode::<Identity, OFFSET>,
24546 Rfc1522Encode: Rfc1522Encode::<Identity, OFFSET>,
24547 }
24548 }
24549 pub fn matches(iid: &windows_core::GUID) -> bool {
24550 iid == &<IMimeInternational as windows_core::Interface>::IID
24551 }
24552}
24553impl windows_core::RuntimeName for IMimeInternational {}
24554windows_core::imp::define_interface!(
24555 IMimeMessage,
24556 IMimeMessage_Vtbl,
24557 0xfd853cd5_7f86_11d0_8252_00c04fd85ab4
24558);
24559impl core::ops::Deref for IMimeMessage {
24560 type Target = IMimeMessageTree;
24561 fn deref(&self) -> &Self::Target {
24562 unsafe { core::mem::transmute(self) }
24563 }
24564}
24565windows_core::imp::interface_hierarchy!(
24566 IMimeMessage,
24567 windows_core::IUnknown,
24568 windows::Win32::System::Com::IPersist,
24569 windows::Win32::System::Com::IPersistStreamInit,
24570 IMimeMessageTree
24571);
24572impl IMimeMessage {
24573 pub unsafe fn CreateWebPage<P0, P2>(
24574 &self,
24575 prootstm: P0,
24576 poptions: *mut WEBPAGEOPTIONS,
24577 pcallback: P2,
24578 ppmoniker: *mut Option<windows::Win32::System::Com::IMoniker>,
24579 ) -> windows_core::Result<()>
24580 where
24581 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
24582 P2: windows_core::Param<IMimeMessageCallback>,
24583 {
24584 unsafe {
24585 (windows_core::Interface::vtable(self).CreateWebPage)(
24586 windows_core::Interface::as_raw(self),
24587 prootstm.param().abi(),
24588 poptions as _,
24589 pcallback.param().abi(),
24590 core::mem::transmute(ppmoniker),
24591 )
24592 .ok()
24593 }
24594 }
24595 pub unsafe fn GetPropA<P0>(
24596 &self,
24597 pszname: P0,
24598 dwflags: u32,
24599 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24600 ) -> windows_core::Result<()>
24601 where
24602 P0: windows_core::Param<windows_core::PCSTR>,
24603 {
24604 unsafe {
24605 (windows_core::Interface::vtable(self).GetPropA)(
24606 windows_core::Interface::as_raw(self),
24607 pszname.param().abi(),
24608 dwflags,
24609 core::mem::transmute(pvalue),
24610 )
24611 .ok()
24612 }
24613 }
24614 pub unsafe fn SetPropA<P0>(
24615 &self,
24616 pszname: P0,
24617 dwflags: u32,
24618 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24619 ) -> windows_core::Result<()>
24620 where
24621 P0: windows_core::Param<windows_core::PCSTR>,
24622 {
24623 unsafe {
24624 (windows_core::Interface::vtable(self).SetPropA)(
24625 windows_core::Interface::as_raw(self),
24626 pszname.param().abi(),
24627 dwflags,
24628 core::mem::transmute(pvalue),
24629 )
24630 .ok()
24631 }
24632 }
24633 pub unsafe fn DeleteProp<P0>(&self, pszname: P0) -> windows_core::Result<()>
24634 where
24635 P0: windows_core::Param<windows_core::PCSTR>,
24636 {
24637 unsafe {
24638 (windows_core::Interface::vtable(self).DeleteProp)(
24639 windows_core::Interface::as_raw(self),
24640 pszname.param().abi(),
24641 )
24642 .ok()
24643 }
24644 }
24645 pub unsafe fn QueryProp<P0, P1>(
24646 &self,
24647 pszname: P0,
24648 pszcriteria: P1,
24649 fsubstring: u8,
24650 fcasesensitive: u8,
24651 ) -> windows_core::Result<()>
24652 where
24653 P0: windows_core::Param<windows_core::PCSTR>,
24654 P1: windows_core::Param<windows_core::PCSTR>,
24655 {
24656 unsafe {
24657 (windows_core::Interface::vtable(self).QueryProp)(
24658 windows_core::Interface::as_raw(self),
24659 pszname.param().abi(),
24660 pszcriteria.param().abi(),
24661 fsubstring,
24662 fcasesensitive,
24663 )
24664 .ok()
24665 }
24666 }
24667 pub unsafe fn GetTextBody(
24668 &self,
24669 dwtxttype: u32,
24670 ietencoding: ENCODINGTYPE,
24671 ppstream: *mut Option<windows::Win32::System::Com::IStream>,
24672 phbody: *mut *mut HBODY__,
24673 ) -> windows_core::Result<()> {
24674 unsafe {
24675 (windows_core::Interface::vtable(self).GetTextBody)(
24676 windows_core::Interface::as_raw(self),
24677 dwtxttype,
24678 ietencoding,
24679 core::mem::transmute(ppstream),
24680 phbody as _,
24681 )
24682 .ok()
24683 }
24684 }
24685 pub unsafe fn SetTextBody<P3>(
24686 &self,
24687 dwtxttype: u32,
24688 ietencoding: ENCODINGTYPE,
24689 halternative: *mut HBODY__,
24690 pstream: P3,
24691 phbody: *mut *mut HBODY__,
24692 ) -> windows_core::Result<()>
24693 where
24694 P3: windows_core::Param<windows::Win32::System::Com::IStream>,
24695 {
24696 unsafe {
24697 (windows_core::Interface::vtable(self).SetTextBody)(
24698 windows_core::Interface::as_raw(self),
24699 dwtxttype,
24700 ietencoding,
24701 halternative as _,
24702 pstream.param().abi(),
24703 phbody as _,
24704 )
24705 .ok()
24706 }
24707 }
24708 pub unsafe fn AttachObject(
24709 &self,
24710 riid: *const windows_core::GUID,
24711 pvobject: *mut core::ffi::c_void,
24712 phbody: *mut *mut HBODY__,
24713 ) -> windows_core::Result<()> {
24714 unsafe {
24715 (windows_core::Interface::vtable(self).AttachObject)(
24716 windows_core::Interface::as_raw(self),
24717 riid,
24718 pvobject as _,
24719 phbody as _,
24720 )
24721 .ok()
24722 }
24723 }
24724 pub unsafe fn AttachFile<P0, P1>(
24725 &self,
24726 pszfilepath: P0,
24727 pstmfile: P1,
24728 phbody: *mut *mut HBODY__,
24729 ) -> windows_core::Result<()>
24730 where
24731 P0: windows_core::Param<windows_core::PCSTR>,
24732 P1: windows_core::Param<windows::Win32::System::Com::IStream>,
24733 {
24734 unsafe {
24735 (windows_core::Interface::vtable(self).AttachFile)(
24736 windows_core::Interface::as_raw(self),
24737 pszfilepath.param().abi(),
24738 pstmfile.param().abi(),
24739 phbody as _,
24740 )
24741 .ok()
24742 }
24743 }
24744 pub unsafe fn AttachURL<P0, P1, P3>(
24745 &self,
24746 pszbase: P0,
24747 pszurl: P1,
24748 dwflags: u32,
24749 pstmurl: P3,
24750 ppszcidurl: *mut windows_core::PSTR,
24751 phbody: *mut *mut HBODY__,
24752 ) -> windows_core::Result<()>
24753 where
24754 P0: windows_core::Param<windows_core::PCSTR>,
24755 P1: windows_core::Param<windows_core::PCSTR>,
24756 P3: windows_core::Param<windows::Win32::System::Com::IStream>,
24757 {
24758 unsafe {
24759 (windows_core::Interface::vtable(self).AttachURL)(
24760 windows_core::Interface::as_raw(self),
24761 pszbase.param().abi(),
24762 pszurl.param().abi(),
24763 dwflags,
24764 pstmurl.param().abi(),
24765 ppszcidurl as _,
24766 phbody as _,
24767 )
24768 .ok()
24769 }
24770 }
24771 pub unsafe fn GetAttachments(
24772 &self,
24773 pcattach: *mut u32,
24774 pprghattach: *mut *mut *mut HBODY__,
24775 ) -> windows_core::Result<()> {
24776 unsafe {
24777 (windows_core::Interface::vtable(self).GetAttachments)(
24778 windows_core::Interface::as_raw(self),
24779 pcattach as _,
24780 pprghattach as _,
24781 )
24782 .ok()
24783 }
24784 }
24785 pub unsafe fn GetAddressTable(&self) -> windows_core::Result<IMimeAddressTable> {
24786 unsafe {
24787 let mut result__ = core::mem::zeroed();
24788 (windows_core::Interface::vtable(self).GetAddressTable)(
24789 windows_core::Interface::as_raw(self),
24790 &mut result__,
24791 )
24792 .and_then(|| windows_core::Type::from_abi(result__))
24793 }
24794 }
24795 pub unsafe fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()> {
24796 unsafe {
24797 (windows_core::Interface::vtable(self).GetSender)(
24798 windows_core::Interface::as_raw(self),
24799 paddress as _,
24800 )
24801 .ok()
24802 }
24803 }
24804 pub unsafe fn GetAddressTypes(
24805 &self,
24806 dwadrtypes: u32,
24807 dwprops: u32,
24808 plist: *mut ADDRESSLIST,
24809 ) -> windows_core::Result<()> {
24810 unsafe {
24811 (windows_core::Interface::vtable(self).GetAddressTypes)(
24812 windows_core::Interface::as_raw(self),
24813 dwadrtypes,
24814 dwprops,
24815 plist as _,
24816 )
24817 .ok()
24818 }
24819 }
24820 pub unsafe fn GetAddressFormat(
24821 &self,
24822 dwadrtype: u32,
24823 format: ADDRESSFORMAT,
24824 ppszformat: *mut windows_core::PSTR,
24825 ) -> windows_core::Result<()> {
24826 unsafe {
24827 (windows_core::Interface::vtable(self).GetAddressFormat)(
24828 windows_core::Interface::as_raw(self),
24829 dwadrtype,
24830 format,
24831 ppszformat as _,
24832 )
24833 .ok()
24834 }
24835 }
24836 pub unsafe fn EnumAddressTypes(
24837 &self,
24838 dwadrtypes: u32,
24839 dwprops: u32,
24840 ) -> windows_core::Result<IMimeEnumAddressTypes> {
24841 unsafe {
24842 let mut result__ = core::mem::zeroed();
24843 (windows_core::Interface::vtable(self).EnumAddressTypes)(
24844 windows_core::Interface::as_raw(self),
24845 dwadrtypes,
24846 dwprops,
24847 &mut result__,
24848 )
24849 .and_then(|| windows_core::Type::from_abi(result__))
24850 }
24851 }
24852 pub unsafe fn SplitMessage(&self, cbmaxpart: u32) -> windows_core::Result<IMimeMessageParts> {
24853 unsafe {
24854 let mut result__ = core::mem::zeroed();
24855 (windows_core::Interface::vtable(self).SplitMessage)(
24856 windows_core::Interface::as_raw(self),
24857 cbmaxpart,
24858 &mut result__,
24859 )
24860 .and_then(|| windows_core::Type::from_abi(result__))
24861 }
24862 }
24863 pub unsafe fn GetRootMoniker(
24864 &self,
24865 ) -> windows_core::Result<windows::Win32::System::Com::IMoniker> {
24866 unsafe {
24867 let mut result__ = core::mem::zeroed();
24868 (windows_core::Interface::vtable(self).GetRootMoniker)(
24869 windows_core::Interface::as_raw(self),
24870 &mut result__,
24871 )
24872 .and_then(|| windows_core::Type::from_abi(result__))
24873 }
24874 }
24875}
24876#[repr(C)]
24877pub struct IMimeMessage_Vtbl {
24878 pub base__: IMimeMessageTree_Vtbl,
24879 pub CreateWebPage: unsafe extern "system" fn(
24880 *mut core::ffi::c_void,
24881 *mut core::ffi::c_void,
24882 *mut WEBPAGEOPTIONS,
24883 *mut core::ffi::c_void,
24884 *mut *mut core::ffi::c_void,
24885 ) -> windows_core::HRESULT,
24886 pub GetPropA: unsafe extern "system" fn(
24887 *mut core::ffi::c_void,
24888 windows_core::PCSTR,
24889 u32,
24890 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24891 ) -> windows_core::HRESULT,
24892 pub SetPropA: unsafe extern "system" fn(
24893 *mut core::ffi::c_void,
24894 windows_core::PCSTR,
24895 u32,
24896 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24897 ) -> windows_core::HRESULT,
24898 pub DeleteProp: unsafe extern "system" fn(
24899 *mut core::ffi::c_void,
24900 windows_core::PCSTR,
24901 ) -> windows_core::HRESULT,
24902 pub QueryProp: unsafe extern "system" fn(
24903 *mut core::ffi::c_void,
24904 windows_core::PCSTR,
24905 windows_core::PCSTR,
24906 u8,
24907 u8,
24908 ) -> windows_core::HRESULT,
24909 pub GetTextBody: unsafe extern "system" fn(
24910 *mut core::ffi::c_void,
24911 u32,
24912 ENCODINGTYPE,
24913 *mut *mut core::ffi::c_void,
24914 *mut *mut HBODY__,
24915 ) -> windows_core::HRESULT,
24916 pub SetTextBody: unsafe extern "system" fn(
24917 *mut core::ffi::c_void,
24918 u32,
24919 ENCODINGTYPE,
24920 *mut HBODY__,
24921 *mut core::ffi::c_void,
24922 *mut *mut HBODY__,
24923 ) -> windows_core::HRESULT,
24924 pub AttachObject: unsafe extern "system" fn(
24925 *mut core::ffi::c_void,
24926 *const windows_core::GUID,
24927 *mut core::ffi::c_void,
24928 *mut *mut HBODY__,
24929 ) -> windows_core::HRESULT,
24930 pub AttachFile: unsafe extern "system" fn(
24931 *mut core::ffi::c_void,
24932 windows_core::PCSTR,
24933 *mut core::ffi::c_void,
24934 *mut *mut HBODY__,
24935 ) -> windows_core::HRESULT,
24936 pub AttachURL: unsafe extern "system" fn(
24937 *mut core::ffi::c_void,
24938 windows_core::PCSTR,
24939 windows_core::PCSTR,
24940 u32,
24941 *mut core::ffi::c_void,
24942 *mut windows_core::PSTR,
24943 *mut *mut HBODY__,
24944 ) -> windows_core::HRESULT,
24945 pub GetAttachments: unsafe extern "system" fn(
24946 *mut core::ffi::c_void,
24947 *mut u32,
24948 *mut *mut *mut HBODY__,
24949 ) -> windows_core::HRESULT,
24950 pub GetAddressTable: unsafe extern "system" fn(
24951 *mut core::ffi::c_void,
24952 *mut *mut core::ffi::c_void,
24953 ) -> windows_core::HRESULT,
24954 pub GetSender: unsafe extern "system" fn(
24955 *mut core::ffi::c_void,
24956 *mut ADDRESSPROPS,
24957 ) -> windows_core::HRESULT,
24958 pub GetAddressTypes: unsafe extern "system" fn(
24959 *mut core::ffi::c_void,
24960 u32,
24961 u32,
24962 *mut ADDRESSLIST,
24963 ) -> windows_core::HRESULT,
24964 pub GetAddressFormat: unsafe extern "system" fn(
24965 *mut core::ffi::c_void,
24966 u32,
24967 ADDRESSFORMAT,
24968 *mut windows_core::PSTR,
24969 ) -> windows_core::HRESULT,
24970 pub EnumAddressTypes: unsafe extern "system" fn(
24971 *mut core::ffi::c_void,
24972 u32,
24973 u32,
24974 *mut *mut core::ffi::c_void,
24975 ) -> windows_core::HRESULT,
24976 pub SplitMessage: unsafe extern "system" fn(
24977 *mut core::ffi::c_void,
24978 u32,
24979 *mut *mut core::ffi::c_void,
24980 ) -> windows_core::HRESULT,
24981 pub GetRootMoniker: unsafe extern "system" fn(
24982 *mut core::ffi::c_void,
24983 *mut *mut core::ffi::c_void,
24984 ) -> windows_core::HRESULT,
24985}
24986pub trait IMimeMessage_Impl: IMimeMessageTree_Impl {
24987 fn CreateWebPage(
24988 &self,
24989 prootstm: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
24990 poptions: *mut WEBPAGEOPTIONS,
24991 pcallback: windows_core::Ref<'_, IMimeMessageCallback>,
24992 ppmoniker: windows_core::OutRef<'_, windows::Win32::System::Com::IMoniker>,
24993 ) -> windows_core::Result<()>;
24994 fn GetPropA(
24995 &self,
24996 pszname: &windows_core::PCSTR,
24997 dwflags: u32,
24998 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24999 ) -> windows_core::Result<()>;
25000 fn SetPropA(
25001 &self,
25002 pszname: &windows_core::PCSTR,
25003 dwflags: u32,
25004 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
25005 ) -> windows_core::Result<()>;
25006 fn DeleteProp(&self, pszname: &windows_core::PCSTR) -> windows_core::Result<()>;
25007 fn QueryProp(
25008 &self,
25009 pszname: &windows_core::PCSTR,
25010 pszcriteria: &windows_core::PCSTR,
25011 fsubstring: u8,
25012 fcasesensitive: u8,
25013 ) -> windows_core::Result<()>;
25014 fn GetTextBody(
25015 &self,
25016 dwtxttype: u32,
25017 ietencoding: ENCODINGTYPE,
25018 ppstream: windows_core::OutRef<'_, windows::Win32::System::Com::IStream>,
25019 phbody: *mut *mut HBODY__,
25020 ) -> windows_core::Result<()>;
25021 fn SetTextBody(
25022 &self,
25023 dwtxttype: u32,
25024 ietencoding: ENCODINGTYPE,
25025 halternative: *mut HBODY__,
25026 pstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
25027 phbody: *mut *mut HBODY__,
25028 ) -> windows_core::Result<()>;
25029 fn AttachObject(
25030 &self,
25031 riid: *const windows_core::GUID,
25032 pvobject: *mut core::ffi::c_void,
25033 phbody: *mut *mut HBODY__,
25034 ) -> windows_core::Result<()>;
25035 fn AttachFile(
25036 &self,
25037 pszfilepath: &windows_core::PCSTR,
25038 pstmfile: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
25039 phbody: *mut *mut HBODY__,
25040 ) -> windows_core::Result<()>;
25041 fn AttachURL(
25042 &self,
25043 pszbase: &windows_core::PCSTR,
25044 pszurl: &windows_core::PCSTR,
25045 dwflags: u32,
25046 pstmurl: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
25047 ppszcidurl: *mut windows_core::PSTR,
25048 phbody: *mut *mut HBODY__,
25049 ) -> windows_core::Result<()>;
25050 fn GetAttachments(
25051 &self,
25052 pcattach: *mut u32,
25053 pprghattach: *mut *mut *mut HBODY__,
25054 ) -> windows_core::Result<()>;
25055 fn GetAddressTable(&self) -> windows_core::Result<IMimeAddressTable>;
25056 fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()>;
25057 fn GetAddressTypes(
25058 &self,
25059 dwadrtypes: u32,
25060 dwprops: u32,
25061 plist: *mut ADDRESSLIST,
25062 ) -> windows_core::Result<()>;
25063 fn GetAddressFormat(
25064 &self,
25065 dwadrtype: u32,
25066 format: ADDRESSFORMAT,
25067 ppszformat: *mut windows_core::PSTR,
25068 ) -> windows_core::Result<()>;
25069 fn EnumAddressTypes(
25070 &self,
25071 dwadrtypes: u32,
25072 dwprops: u32,
25073 ) -> windows_core::Result<IMimeEnumAddressTypes>;
25074 fn SplitMessage(&self, cbmaxpart: u32) -> windows_core::Result<IMimeMessageParts>;
25075 fn GetRootMoniker(&self) -> windows_core::Result<windows::Win32::System::Com::IMoniker>;
25076}
25077impl IMimeMessage_Vtbl {
25078 pub const fn new<Identity: IMimeMessage_Impl, const OFFSET: isize>() -> Self {
25079 unsafe extern "system" fn CreateWebPage<
25080 Identity: IMimeMessage_Impl,
25081 const OFFSET: isize,
25082 >(
25083 this: *mut core::ffi::c_void,
25084 prootstm: *mut core::ffi::c_void,
25085 poptions: *mut WEBPAGEOPTIONS,
25086 pcallback: *mut core::ffi::c_void,
25087 ppmoniker: *mut *mut core::ffi::c_void,
25088 ) -> windows_core::HRESULT {
25089 unsafe {
25090 let this: &Identity =
25091 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25092 IMimeMessage_Impl::CreateWebPage(
25093 this,
25094 core::mem::transmute_copy(&prootstm),
25095 core::mem::transmute_copy(&poptions),
25096 core::mem::transmute_copy(&pcallback),
25097 core::mem::transmute_copy(&ppmoniker),
25098 )
25099 .into()
25100 }
25101 }
25102 unsafe extern "system" fn GetPropA<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25103 this: *mut core::ffi::c_void,
25104 pszname: windows_core::PCSTR,
25105 dwflags: u32,
25106 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
25107 ) -> windows_core::HRESULT {
25108 unsafe {
25109 let this: &Identity =
25110 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25111 IMimeMessage_Impl::GetPropA(
25112 this,
25113 core::mem::transmute(&pszname),
25114 core::mem::transmute_copy(&dwflags),
25115 core::mem::transmute_copy(&pvalue),
25116 )
25117 .into()
25118 }
25119 }
25120 unsafe extern "system" fn SetPropA<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25121 this: *mut core::ffi::c_void,
25122 pszname: windows_core::PCSTR,
25123 dwflags: u32,
25124 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
25125 ) -> windows_core::HRESULT {
25126 unsafe {
25127 let this: &Identity =
25128 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25129 IMimeMessage_Impl::SetPropA(
25130 this,
25131 core::mem::transmute(&pszname),
25132 core::mem::transmute_copy(&dwflags),
25133 core::mem::transmute_copy(&pvalue),
25134 )
25135 .into()
25136 }
25137 }
25138 unsafe extern "system" fn DeleteProp<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25139 this: *mut core::ffi::c_void,
25140 pszname: windows_core::PCSTR,
25141 ) -> windows_core::HRESULT {
25142 unsafe {
25143 let this: &Identity =
25144 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25145 IMimeMessage_Impl::DeleteProp(this, core::mem::transmute(&pszname)).into()
25146 }
25147 }
25148 unsafe extern "system" fn QueryProp<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25149 this: *mut core::ffi::c_void,
25150 pszname: windows_core::PCSTR,
25151 pszcriteria: windows_core::PCSTR,
25152 fsubstring: u8,
25153 fcasesensitive: u8,
25154 ) -> windows_core::HRESULT {
25155 unsafe {
25156 let this: &Identity =
25157 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25158 IMimeMessage_Impl::QueryProp(
25159 this,
25160 core::mem::transmute(&pszname),
25161 core::mem::transmute(&pszcriteria),
25162 core::mem::transmute_copy(&fsubstring),
25163 core::mem::transmute_copy(&fcasesensitive),
25164 )
25165 .into()
25166 }
25167 }
25168 unsafe extern "system" fn GetTextBody<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25169 this: *mut core::ffi::c_void,
25170 dwtxttype: u32,
25171 ietencoding: ENCODINGTYPE,
25172 ppstream: *mut *mut core::ffi::c_void,
25173 phbody: *mut *mut HBODY__,
25174 ) -> windows_core::HRESULT {
25175 unsafe {
25176 let this: &Identity =
25177 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25178 IMimeMessage_Impl::GetTextBody(
25179 this,
25180 core::mem::transmute_copy(&dwtxttype),
25181 core::mem::transmute_copy(&ietencoding),
25182 core::mem::transmute_copy(&ppstream),
25183 core::mem::transmute_copy(&phbody),
25184 )
25185 .into()
25186 }
25187 }
25188 unsafe extern "system" fn SetTextBody<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25189 this: *mut core::ffi::c_void,
25190 dwtxttype: u32,
25191 ietencoding: ENCODINGTYPE,
25192 halternative: *mut HBODY__,
25193 pstream: *mut core::ffi::c_void,
25194 phbody: *mut *mut HBODY__,
25195 ) -> windows_core::HRESULT {
25196 unsafe {
25197 let this: &Identity =
25198 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25199 IMimeMessage_Impl::SetTextBody(
25200 this,
25201 core::mem::transmute_copy(&dwtxttype),
25202 core::mem::transmute_copy(&ietencoding),
25203 core::mem::transmute_copy(&halternative),
25204 core::mem::transmute_copy(&pstream),
25205 core::mem::transmute_copy(&phbody),
25206 )
25207 .into()
25208 }
25209 }
25210 unsafe extern "system" fn AttachObject<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25211 this: *mut core::ffi::c_void,
25212 riid: *const windows_core::GUID,
25213 pvobject: *mut core::ffi::c_void,
25214 phbody: *mut *mut HBODY__,
25215 ) -> windows_core::HRESULT {
25216 unsafe {
25217 let this: &Identity =
25218 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25219 IMimeMessage_Impl::AttachObject(
25220 this,
25221 core::mem::transmute_copy(&riid),
25222 core::mem::transmute_copy(&pvobject),
25223 core::mem::transmute_copy(&phbody),
25224 )
25225 .into()
25226 }
25227 }
25228 unsafe extern "system" fn AttachFile<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25229 this: *mut core::ffi::c_void,
25230 pszfilepath: windows_core::PCSTR,
25231 pstmfile: *mut core::ffi::c_void,
25232 phbody: *mut *mut HBODY__,
25233 ) -> windows_core::HRESULT {
25234 unsafe {
25235 let this: &Identity =
25236 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25237 IMimeMessage_Impl::AttachFile(
25238 this,
25239 core::mem::transmute(&pszfilepath),
25240 core::mem::transmute_copy(&pstmfile),
25241 core::mem::transmute_copy(&phbody),
25242 )
25243 .into()
25244 }
25245 }
25246 unsafe extern "system" fn AttachURL<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25247 this: *mut core::ffi::c_void,
25248 pszbase: windows_core::PCSTR,
25249 pszurl: windows_core::PCSTR,
25250 dwflags: u32,
25251 pstmurl: *mut core::ffi::c_void,
25252 ppszcidurl: *mut windows_core::PSTR,
25253 phbody: *mut *mut HBODY__,
25254 ) -> windows_core::HRESULT {
25255 unsafe {
25256 let this: &Identity =
25257 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25258 IMimeMessage_Impl::AttachURL(
25259 this,
25260 core::mem::transmute(&pszbase),
25261 core::mem::transmute(&pszurl),
25262 core::mem::transmute_copy(&dwflags),
25263 core::mem::transmute_copy(&pstmurl),
25264 core::mem::transmute_copy(&ppszcidurl),
25265 core::mem::transmute_copy(&phbody),
25266 )
25267 .into()
25268 }
25269 }
25270 unsafe extern "system" fn GetAttachments<
25271 Identity: IMimeMessage_Impl,
25272 const OFFSET: isize,
25273 >(
25274 this: *mut core::ffi::c_void,
25275 pcattach: *mut u32,
25276 pprghattach: *mut *mut *mut HBODY__,
25277 ) -> windows_core::HRESULT {
25278 unsafe {
25279 let this: &Identity =
25280 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25281 IMimeMessage_Impl::GetAttachments(
25282 this,
25283 core::mem::transmute_copy(&pcattach),
25284 core::mem::transmute_copy(&pprghattach),
25285 )
25286 .into()
25287 }
25288 }
25289 unsafe extern "system" fn GetAddressTable<
25290 Identity: IMimeMessage_Impl,
25291 const OFFSET: isize,
25292 >(
25293 this: *mut core::ffi::c_void,
25294 pptable: *mut *mut core::ffi::c_void,
25295 ) -> windows_core::HRESULT {
25296 unsafe {
25297 let this: &Identity =
25298 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25299 match IMimeMessage_Impl::GetAddressTable(this) {
25300 Ok(ok__) => {
25301 pptable.write(core::mem::transmute(ok__));
25302 windows_core::HRESULT(0)
25303 }
25304 Err(err) => err.into(),
25305 }
25306 }
25307 }
25308 unsafe extern "system" fn GetSender<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25309 this: *mut core::ffi::c_void,
25310 paddress: *mut ADDRESSPROPS,
25311 ) -> windows_core::HRESULT {
25312 unsafe {
25313 let this: &Identity =
25314 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25315 IMimeMessage_Impl::GetSender(this, core::mem::transmute_copy(&paddress)).into()
25316 }
25317 }
25318 unsafe extern "system" fn GetAddressTypes<
25319 Identity: IMimeMessage_Impl,
25320 const OFFSET: isize,
25321 >(
25322 this: *mut core::ffi::c_void,
25323 dwadrtypes: u32,
25324 dwprops: u32,
25325 plist: *mut ADDRESSLIST,
25326 ) -> windows_core::HRESULT {
25327 unsafe {
25328 let this: &Identity =
25329 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25330 IMimeMessage_Impl::GetAddressTypes(
25331 this,
25332 core::mem::transmute_copy(&dwadrtypes),
25333 core::mem::transmute_copy(&dwprops),
25334 core::mem::transmute_copy(&plist),
25335 )
25336 .into()
25337 }
25338 }
25339 unsafe extern "system" fn GetAddressFormat<
25340 Identity: IMimeMessage_Impl,
25341 const OFFSET: isize,
25342 >(
25343 this: *mut core::ffi::c_void,
25344 dwadrtype: u32,
25345 format: ADDRESSFORMAT,
25346 ppszformat: *mut windows_core::PSTR,
25347 ) -> windows_core::HRESULT {
25348 unsafe {
25349 let this: &Identity =
25350 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25351 IMimeMessage_Impl::GetAddressFormat(
25352 this,
25353 core::mem::transmute_copy(&dwadrtype),
25354 core::mem::transmute_copy(&format),
25355 core::mem::transmute_copy(&ppszformat),
25356 )
25357 .into()
25358 }
25359 }
25360 unsafe extern "system" fn EnumAddressTypes<
25361 Identity: IMimeMessage_Impl,
25362 const OFFSET: isize,
25363 >(
25364 this: *mut core::ffi::c_void,
25365 dwadrtypes: u32,
25366 dwprops: u32,
25367 ppenum: *mut *mut core::ffi::c_void,
25368 ) -> windows_core::HRESULT {
25369 unsafe {
25370 let this: &Identity =
25371 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25372 match IMimeMessage_Impl::EnumAddressTypes(
25373 this,
25374 core::mem::transmute_copy(&dwadrtypes),
25375 core::mem::transmute_copy(&dwprops),
25376 ) {
25377 Ok(ok__) => {
25378 ppenum.write(core::mem::transmute(ok__));
25379 windows_core::HRESULT(0)
25380 }
25381 Err(err) => err.into(),
25382 }
25383 }
25384 }
25385 unsafe extern "system" fn SplitMessage<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25386 this: *mut core::ffi::c_void,
25387 cbmaxpart: u32,
25388 ppparts: *mut *mut core::ffi::c_void,
25389 ) -> windows_core::HRESULT {
25390 unsafe {
25391 let this: &Identity =
25392 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25393 match IMimeMessage_Impl::SplitMessage(this, core::mem::transmute_copy(&cbmaxpart)) {
25394 Ok(ok__) => {
25395 ppparts.write(core::mem::transmute(ok__));
25396 windows_core::HRESULT(0)
25397 }
25398 Err(err) => err.into(),
25399 }
25400 }
25401 }
25402 unsafe extern "system" fn GetRootMoniker<
25403 Identity: IMimeMessage_Impl,
25404 const OFFSET: isize,
25405 >(
25406 this: *mut core::ffi::c_void,
25407 ppmoniker: *mut *mut core::ffi::c_void,
25408 ) -> windows_core::HRESULT {
25409 unsafe {
25410 let this: &Identity =
25411 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25412 match IMimeMessage_Impl::GetRootMoniker(this) {
25413 Ok(ok__) => {
25414 ppmoniker.write(core::mem::transmute(ok__));
25415 windows_core::HRESULT(0)
25416 }
25417 Err(err) => err.into(),
25418 }
25419 }
25420 }
25421 Self {
25422 base__: IMimeMessageTree_Vtbl::new::<Identity, OFFSET>(),
25423 CreateWebPage: CreateWebPage::<Identity, OFFSET>,
25424 GetPropA: GetPropA::<Identity, OFFSET>,
25425 SetPropA: SetPropA::<Identity, OFFSET>,
25426 DeleteProp: DeleteProp::<Identity, OFFSET>,
25427 QueryProp: QueryProp::<Identity, OFFSET>,
25428 GetTextBody: GetTextBody::<Identity, OFFSET>,
25429 SetTextBody: SetTextBody::<Identity, OFFSET>,
25430 AttachObject: AttachObject::<Identity, OFFSET>,
25431 AttachFile: AttachFile::<Identity, OFFSET>,
25432 AttachURL: AttachURL::<Identity, OFFSET>,
25433 GetAttachments: GetAttachments::<Identity, OFFSET>,
25434 GetAddressTable: GetAddressTable::<Identity, OFFSET>,
25435 GetSender: GetSender::<Identity, OFFSET>,
25436 GetAddressTypes: GetAddressTypes::<Identity, OFFSET>,
25437 GetAddressFormat: GetAddressFormat::<Identity, OFFSET>,
25438 EnumAddressTypes: EnumAddressTypes::<Identity, OFFSET>,
25439 SplitMessage: SplitMessage::<Identity, OFFSET>,
25440 GetRootMoniker: GetRootMoniker::<Identity, OFFSET>,
25441 }
25442 }
25443 pub fn matches(iid: &windows_core::GUID) -> bool {
25444 iid == & < IMimeMessage as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersist as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersistStreamInit as windows_core::Interface >::IID || iid == & < IMimeMessageTree as windows_core::Interface >::IID
25445 }
25446}
25447impl windows_core::RuntimeName for IMimeMessage {}
25448windows_core::imp::define_interface!(
25449 IMimeMessageCallback,
25450 IMimeMessageCallback_Vtbl,
25451 0x761aa641_7bda_11d1_8aa9_00c04fb951f3
25452);
25453windows_core::imp::interface_hierarchy!(IMimeMessageCallback, windows_core::IUnknown);
25454impl IMimeMessageCallback {
25455 pub unsafe fn OnWebPageSplitter<P1>(
25456 &self,
25457 cinlined: u32,
25458 ppstream: P1,
25459 ) -> windows_core::Result<()>
25460 where
25461 P1: windows_core::Param<windows::Win32::System::Com::IStream>,
25462 {
25463 unsafe {
25464 (windows_core::Interface::vtable(self).OnWebPageSplitter)(
25465 windows_core::Interface::as_raw(self),
25466 cinlined,
25467 ppstream.param().abi(),
25468 )
25469 .ok()
25470 }
25471 }
25472}
25473#[repr(C)]
25474pub struct IMimeMessageCallback_Vtbl {
25475 pub base__: windows_core::IUnknown_Vtbl,
25476 pub OnWebPageSplitter: unsafe extern "system" fn(
25477 *mut core::ffi::c_void,
25478 u32,
25479 *mut core::ffi::c_void,
25480 ) -> windows_core::HRESULT,
25481}
25482pub trait IMimeMessageCallback_Impl: windows_core::IUnknownImpl {
25483 fn OnWebPageSplitter(
25484 &self,
25485 cinlined: u32,
25486 ppstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
25487 ) -> windows_core::Result<()>;
25488}
25489impl IMimeMessageCallback_Vtbl {
25490 pub const fn new<Identity: IMimeMessageCallback_Impl, const OFFSET: isize>() -> Self {
25491 unsafe extern "system" fn OnWebPageSplitter<
25492 Identity: IMimeMessageCallback_Impl,
25493 const OFFSET: isize,
25494 >(
25495 this: *mut core::ffi::c_void,
25496 cinlined: u32,
25497 ppstream: *mut core::ffi::c_void,
25498 ) -> windows_core::HRESULT {
25499 unsafe {
25500 let this: &Identity =
25501 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25502 IMimeMessageCallback_Impl::OnWebPageSplitter(
25503 this,
25504 core::mem::transmute_copy(&cinlined),
25505 core::mem::transmute_copy(&ppstream),
25506 )
25507 .into()
25508 }
25509 }
25510 Self {
25511 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25512 OnWebPageSplitter: OnWebPageSplitter::<Identity, OFFSET>,
25513 }
25514 }
25515 pub fn matches(iid: &windows_core::GUID) -> bool {
25516 iid == &<IMimeMessageCallback as windows_core::Interface>::IID
25517 }
25518}
25519impl windows_core::RuntimeName for IMimeMessageCallback {}
25520windows_core::imp::define_interface!(
25521 IMimeMessageParts,
25522 IMimeMessageParts_Vtbl,
25523 0xc558834f_7f86_11d0_8252_00c04fd85ab4
25524);
25525windows_core::imp::interface_hierarchy!(IMimeMessageParts, windows_core::IUnknown);
25526impl IMimeMessageParts {
25527 pub unsafe fn CombineParts(&self) -> windows_core::Result<IMimeMessage> {
25528 unsafe {
25529 let mut result__ = core::mem::zeroed();
25530 (windows_core::Interface::vtable(self).CombineParts)(
25531 windows_core::Interface::as_raw(self),
25532 &mut result__,
25533 )
25534 .and_then(|| windows_core::Type::from_abi(result__))
25535 }
25536 }
25537 pub unsafe fn AddPart<P0>(&self, pmessage: P0) -> windows_core::Result<()>
25538 where
25539 P0: windows_core::Param<IMimeMessage>,
25540 {
25541 unsafe {
25542 (windows_core::Interface::vtable(self).AddPart)(
25543 windows_core::Interface::as_raw(self),
25544 pmessage.param().abi(),
25545 )
25546 .ok()
25547 }
25548 }
25549 pub unsafe fn SetMaxParts(&self, cparts: u32) -> windows_core::Result<()> {
25550 unsafe {
25551 (windows_core::Interface::vtable(self).SetMaxParts)(
25552 windows_core::Interface::as_raw(self),
25553 cparts,
25554 )
25555 .ok()
25556 }
25557 }
25558 pub unsafe fn CountParts(&self, pcparts: *mut u32) -> windows_core::Result<()> {
25559 unsafe {
25560 (windows_core::Interface::vtable(self).CountParts)(
25561 windows_core::Interface::as_raw(self),
25562 pcparts as _,
25563 )
25564 .ok()
25565 }
25566 }
25567 pub unsafe fn EnumParts(&self) -> windows_core::Result<IMimeEnumMessageParts> {
25568 unsafe {
25569 let mut result__ = core::mem::zeroed();
25570 (windows_core::Interface::vtable(self).EnumParts)(
25571 windows_core::Interface::as_raw(self),
25572 &mut result__,
25573 )
25574 .and_then(|| windows_core::Type::from_abi(result__))
25575 }
25576 }
25577}
25578#[repr(C)]
25579pub struct IMimeMessageParts_Vtbl {
25580 pub base__: windows_core::IUnknown_Vtbl,
25581 pub CombineParts: unsafe extern "system" fn(
25582 *mut core::ffi::c_void,
25583 *mut *mut core::ffi::c_void,
25584 ) -> windows_core::HRESULT,
25585 pub AddPart: unsafe extern "system" fn(
25586 *mut core::ffi::c_void,
25587 *mut core::ffi::c_void,
25588 ) -> windows_core::HRESULT,
25589 pub SetMaxParts:
25590 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25591 pub CountParts:
25592 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25593 pub EnumParts: unsafe extern "system" fn(
25594 *mut core::ffi::c_void,
25595 *mut *mut core::ffi::c_void,
25596 ) -> windows_core::HRESULT,
25597}
25598pub trait IMimeMessageParts_Impl: windows_core::IUnknownImpl {
25599 fn CombineParts(&self) -> windows_core::Result<IMimeMessage>;
25600 fn AddPart(&self, pmessage: windows_core::Ref<'_, IMimeMessage>) -> windows_core::Result<()>;
25601 fn SetMaxParts(&self, cparts: u32) -> windows_core::Result<()>;
25602 fn CountParts(&self, pcparts: *mut u32) -> windows_core::Result<()>;
25603 fn EnumParts(&self) -> windows_core::Result<IMimeEnumMessageParts>;
25604}
25605impl IMimeMessageParts_Vtbl {
25606 pub const fn new<Identity: IMimeMessageParts_Impl, const OFFSET: isize>() -> Self {
25607 unsafe extern "system" fn CombineParts<
25608 Identity: IMimeMessageParts_Impl,
25609 const OFFSET: isize,
25610 >(
25611 this: *mut core::ffi::c_void,
25612 ppmessage: *mut *mut core::ffi::c_void,
25613 ) -> windows_core::HRESULT {
25614 unsafe {
25615 let this: &Identity =
25616 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25617 match IMimeMessageParts_Impl::CombineParts(this) {
25618 Ok(ok__) => {
25619 ppmessage.write(core::mem::transmute(ok__));
25620 windows_core::HRESULT(0)
25621 }
25622 Err(err) => err.into(),
25623 }
25624 }
25625 }
25626 unsafe extern "system" fn AddPart<Identity: IMimeMessageParts_Impl, const OFFSET: isize>(
25627 this: *mut core::ffi::c_void,
25628 pmessage: *mut core::ffi::c_void,
25629 ) -> windows_core::HRESULT {
25630 unsafe {
25631 let this: &Identity =
25632 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25633 IMimeMessageParts_Impl::AddPart(this, core::mem::transmute_copy(&pmessage)).into()
25634 }
25635 }
25636 unsafe extern "system" fn SetMaxParts<
25637 Identity: IMimeMessageParts_Impl,
25638 const OFFSET: isize,
25639 >(
25640 this: *mut core::ffi::c_void,
25641 cparts: u32,
25642 ) -> windows_core::HRESULT {
25643 unsafe {
25644 let this: &Identity =
25645 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25646 IMimeMessageParts_Impl::SetMaxParts(this, core::mem::transmute_copy(&cparts)).into()
25647 }
25648 }
25649 unsafe extern "system" fn CountParts<
25650 Identity: IMimeMessageParts_Impl,
25651 const OFFSET: isize,
25652 >(
25653 this: *mut core::ffi::c_void,
25654 pcparts: *mut u32,
25655 ) -> windows_core::HRESULT {
25656 unsafe {
25657 let this: &Identity =
25658 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25659 IMimeMessageParts_Impl::CountParts(this, core::mem::transmute_copy(&pcparts)).into()
25660 }
25661 }
25662 unsafe extern "system" fn EnumParts<
25663 Identity: IMimeMessageParts_Impl,
25664 const OFFSET: isize,
25665 >(
25666 this: *mut core::ffi::c_void,
25667 ppenum: *mut *mut core::ffi::c_void,
25668 ) -> windows_core::HRESULT {
25669 unsafe {
25670 let this: &Identity =
25671 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25672 match IMimeMessageParts_Impl::EnumParts(this) {
25673 Ok(ok__) => {
25674 ppenum.write(core::mem::transmute(ok__));
25675 windows_core::HRESULT(0)
25676 }
25677 Err(err) => err.into(),
25678 }
25679 }
25680 }
25681 Self {
25682 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25683 CombineParts: CombineParts::<Identity, OFFSET>,
25684 AddPart: AddPart::<Identity, OFFSET>,
25685 SetMaxParts: SetMaxParts::<Identity, OFFSET>,
25686 CountParts: CountParts::<Identity, OFFSET>,
25687 EnumParts: EnumParts::<Identity, OFFSET>,
25688 }
25689 }
25690 pub fn matches(iid: &windows_core::GUID) -> bool {
25691 iid == &<IMimeMessageParts as windows_core::Interface>::IID
25692 }
25693}
25694impl windows_core::RuntimeName for IMimeMessageParts {}
25695windows_core::imp::define_interface!(
25696 IMimeMessageTree,
25697 IMimeMessageTree_Vtbl,
25698 0xfd853cd4_7f86_11d0_8252_00c04fd85ab4
25699);
25700impl core::ops::Deref for IMimeMessageTree {
25701 type Target = windows::Win32::System::Com::IPersistStreamInit;
25702 fn deref(&self) -> &Self::Target {
25703 unsafe { core::mem::transmute(self) }
25704 }
25705}
25706windows_core::imp::interface_hierarchy!(
25707 IMimeMessageTree,
25708 windows_core::IUnknown,
25709 windows::Win32::System::Com::IPersist,
25710 windows::Win32::System::Com::IPersistStreamInit
25711);
25712impl IMimeMessageTree {
25713 pub unsafe fn Save<P0>(&self, pstm: P0, fcleardirty: bool) -> windows_core::Result<()>
25714 where
25715 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
25716 {
25717 unsafe {
25718 (windows_core::Interface::vtable(self).Save)(
25719 windows_core::Interface::as_raw(self),
25720 pstm.param().abi(),
25721 fcleardirty.into(),
25722 )
25723 .ok()
25724 }
25725 }
25726 pub unsafe fn GetSizeMax(&self) -> windows_core::Result<u64> {
25727 unsafe {
25728 let mut result__ = core::mem::zeroed();
25729 (windows_core::Interface::vtable(self).GetSizeMax)(
25730 windows_core::Interface::as_raw(self),
25731 &mut result__,
25732 )
25733 .map(|| result__)
25734 }
25735 }
25736 pub unsafe fn InitNew(&self) -> windows_core::Result<()> {
25737 unsafe {
25738 (windows_core::Interface::vtable(self).InitNew)(windows_core::Interface::as_raw(self))
25739 .ok()
25740 }
25741 }
25742 pub unsafe fn GetMessageSource(
25743 &self,
25744 ppstream: *mut Option<windows::Win32::System::Com::IStream>,
25745 dwflags: u32,
25746 ) -> windows_core::Result<()> {
25747 unsafe {
25748 (windows_core::Interface::vtable(self).GetMessageSource)(
25749 windows_core::Interface::as_raw(self),
25750 core::mem::transmute(ppstream),
25751 dwflags,
25752 )
25753 .ok()
25754 }
25755 }
25756 pub unsafe fn GetMessageSize(
25757 &self,
25758 pcbsize: *mut u32,
25759 dwflags: u32,
25760 ) -> windows_core::Result<()> {
25761 unsafe {
25762 (windows_core::Interface::vtable(self).GetMessageSize)(
25763 windows_core::Interface::as_raw(self),
25764 pcbsize as _,
25765 dwflags,
25766 )
25767 .ok()
25768 }
25769 }
25770 pub unsafe fn LoadOffsetTable<P0>(&self, pstream: P0) -> windows_core::Result<()>
25771 where
25772 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
25773 {
25774 unsafe {
25775 (windows_core::Interface::vtable(self).LoadOffsetTable)(
25776 windows_core::Interface::as_raw(self),
25777 pstream.param().abi(),
25778 )
25779 .ok()
25780 }
25781 }
25782 pub unsafe fn SaveOffsetTable<P0>(&self, pstream: P0, dwflags: u32) -> windows_core::Result<()>
25783 where
25784 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
25785 {
25786 unsafe {
25787 (windows_core::Interface::vtable(self).SaveOffsetTable)(
25788 windows_core::Interface::as_raw(self),
25789 pstream.param().abi(),
25790 dwflags,
25791 )
25792 .ok()
25793 }
25794 }
25795 pub unsafe fn GetFlags(&self, pdwflags: *mut u32) -> windows_core::Result<()> {
25796 unsafe {
25797 (windows_core::Interface::vtable(self).GetFlags)(
25798 windows_core::Interface::as_raw(self),
25799 pdwflags as _,
25800 )
25801 .ok()
25802 }
25803 }
25804 pub unsafe fn Commit(&self, dwflags: u32) -> windows_core::Result<()> {
25805 unsafe {
25806 (windows_core::Interface::vtable(self).Commit)(
25807 windows_core::Interface::as_raw(self),
25808 dwflags,
25809 )
25810 .ok()
25811 }
25812 }
25813 pub unsafe fn HandsOffStorage(&self) -> windows_core::Result<()> {
25814 unsafe {
25815 (windows_core::Interface::vtable(self).HandsOffStorage)(
25816 windows_core::Interface::as_raw(self),
25817 )
25818 .ok()
25819 }
25820 }
25821 pub unsafe fn BindToObject(
25822 &self,
25823 hbody: *const HBODY__,
25824 riid: *const windows_core::GUID,
25825 ppvobject: *mut *mut core::ffi::c_void,
25826 ) -> windows_core::Result<()> {
25827 unsafe {
25828 (windows_core::Interface::vtable(self).BindToObject)(
25829 windows_core::Interface::as_raw(self),
25830 hbody,
25831 riid,
25832 ppvobject as _,
25833 )
25834 .ok()
25835 }
25836 }
25837 pub unsafe fn SaveBody<P2>(
25838 &self,
25839 hbody: *mut HBODY__,
25840 dwflags: u32,
25841 pstream: P2,
25842 ) -> windows_core::Result<()>
25843 where
25844 P2: windows_core::Param<windows::Win32::System::Com::IStream>,
25845 {
25846 unsafe {
25847 (windows_core::Interface::vtable(self).SaveBody)(
25848 windows_core::Interface::as_raw(self),
25849 hbody as _,
25850 dwflags,
25851 pstream.param().abi(),
25852 )
25853 .ok()
25854 }
25855 }
25856 pub unsafe fn InsertBody(
25857 &self,
25858 location: BODYLOCATION,
25859 hpivot: *mut HBODY__,
25860 phbody: *mut *mut HBODY__,
25861 ) -> windows_core::Result<()> {
25862 unsafe {
25863 (windows_core::Interface::vtable(self).InsertBody)(
25864 windows_core::Interface::as_raw(self),
25865 location,
25866 hpivot as _,
25867 phbody as _,
25868 )
25869 .ok()
25870 }
25871 }
25872 pub unsafe fn GetBody(
25873 &self,
25874 location: BODYLOCATION,
25875 hpivot: *mut HBODY__,
25876 phbody: *mut *mut HBODY__,
25877 ) -> windows_core::Result<()> {
25878 unsafe {
25879 (windows_core::Interface::vtable(self).GetBody)(
25880 windows_core::Interface::as_raw(self),
25881 location,
25882 hpivot as _,
25883 phbody as _,
25884 )
25885 .ok()
25886 }
25887 }
25888 pub unsafe fn DeleteBody(&self, hbody: *mut HBODY__, dwflags: u32) -> windows_core::Result<()> {
25889 unsafe {
25890 (windows_core::Interface::vtable(self).DeleteBody)(
25891 windows_core::Interface::as_raw(self),
25892 hbody as _,
25893 dwflags,
25894 )
25895 .ok()
25896 }
25897 }
25898 pub unsafe fn MoveBody(
25899 &self,
25900 hbody: *mut HBODY__,
25901 location: BODYLOCATION,
25902 ) -> windows_core::Result<()> {
25903 unsafe {
25904 (windows_core::Interface::vtable(self).MoveBody)(
25905 windows_core::Interface::as_raw(self),
25906 hbody as _,
25907 location,
25908 )
25909 .ok()
25910 }
25911 }
25912 pub unsafe fn CountBodies(
25913 &self,
25914 hparent: *mut HBODY__,
25915 frecurse: u8,
25916 pcbodies: *mut u32,
25917 ) -> windows_core::Result<()> {
25918 unsafe {
25919 (windows_core::Interface::vtable(self).CountBodies)(
25920 windows_core::Interface::as_raw(self),
25921 hparent as _,
25922 frecurse,
25923 pcbodies as _,
25924 )
25925 .ok()
25926 }
25927 }
25928 pub unsafe fn FindFirst(
25929 &self,
25930 pfindbody: *mut FINDBODY,
25931 phbody: *mut *mut HBODY__,
25932 ) -> windows_core::Result<()> {
25933 unsafe {
25934 (windows_core::Interface::vtable(self).FindFirst)(
25935 windows_core::Interface::as_raw(self),
25936 pfindbody as _,
25937 phbody as _,
25938 )
25939 .ok()
25940 }
25941 }
25942 pub unsafe fn FindNext(
25943 &self,
25944 pfindbody: *mut FINDBODY,
25945 phbody: *mut *mut HBODY__,
25946 ) -> windows_core::Result<()> {
25947 unsafe {
25948 (windows_core::Interface::vtable(self).FindNext)(
25949 windows_core::Interface::as_raw(self),
25950 pfindbody as _,
25951 phbody as _,
25952 )
25953 .ok()
25954 }
25955 }
25956 pub unsafe fn ResolveURL<P1, P2>(
25957 &self,
25958 hrelated: *mut HBODY__,
25959 pszbase: P1,
25960 pszurl: P2,
25961 dwflags: u32,
25962 phbody: *mut *mut HBODY__,
25963 ) -> windows_core::Result<()>
25964 where
25965 P1: windows_core::Param<windows_core::PCSTR>,
25966 P2: windows_core::Param<windows_core::PCSTR>,
25967 {
25968 unsafe {
25969 (windows_core::Interface::vtable(self).ResolveURL)(
25970 windows_core::Interface::as_raw(self),
25971 hrelated as _,
25972 pszbase.param().abi(),
25973 pszurl.param().abi(),
25974 dwflags,
25975 phbody as _,
25976 )
25977 .ok()
25978 }
25979 }
25980 pub unsafe fn ToMultipart<P1>(
25981 &self,
25982 hbody: *mut HBODY__,
25983 pszsubtype: P1,
25984 phmultipart: *mut *mut HBODY__,
25985 ) -> windows_core::Result<()>
25986 where
25987 P1: windows_core::Param<windows_core::PCSTR>,
25988 {
25989 unsafe {
25990 (windows_core::Interface::vtable(self).ToMultipart)(
25991 windows_core::Interface::as_raw(self),
25992 hbody as _,
25993 pszsubtype.param().abi(),
25994 phmultipart as _,
25995 )
25996 .ok()
25997 }
25998 }
25999 pub unsafe fn GetBodyOffsets(
26000 &self,
26001 hbody: *mut HBODY__,
26002 poffsets: *mut BODYOFFSETS,
26003 ) -> windows_core::Result<()> {
26004 unsafe {
26005 (windows_core::Interface::vtable(self).GetBodyOffsets)(
26006 windows_core::Interface::as_raw(self),
26007 hbody as _,
26008 poffsets as _,
26009 )
26010 .ok()
26011 }
26012 }
26013 pub unsafe fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()> {
26014 unsafe {
26015 (windows_core::Interface::vtable(self).GetCharset)(
26016 windows_core::Interface::as_raw(self),
26017 phcharset as _,
26018 )
26019 .ok()
26020 }
26021 }
26022 pub unsafe fn SetCharset(
26023 &self,
26024 hcharset: *mut HCHARSET__,
26025 applytype: CSETAPPLYTYPE,
26026 ) -> windows_core::Result<()> {
26027 unsafe {
26028 (windows_core::Interface::vtable(self).SetCharset)(
26029 windows_core::Interface::as_raw(self),
26030 hcharset as _,
26031 applytype,
26032 )
26033 .ok()
26034 }
26035 }
26036 pub unsafe fn IsBodyType(
26037 &self,
26038 hbody: *mut HBODY__,
26039 bodytype: IMSGBODYTYPE,
26040 ) -> windows_core::Result<()> {
26041 unsafe {
26042 (windows_core::Interface::vtable(self).IsBodyType)(
26043 windows_core::Interface::as_raw(self),
26044 hbody as _,
26045 bodytype,
26046 )
26047 .ok()
26048 }
26049 }
26050 pub unsafe fn IsContentType<P1, P2>(
26051 &self,
26052 hbody: *mut HBODY__,
26053 pszpritype: P1,
26054 pszsubtype: P2,
26055 ) -> windows_core::Result<()>
26056 where
26057 P1: windows_core::Param<windows_core::PCSTR>,
26058 P2: windows_core::Param<windows_core::PCSTR>,
26059 {
26060 unsafe {
26061 (windows_core::Interface::vtable(self).IsContentType)(
26062 windows_core::Interface::as_raw(self),
26063 hbody as _,
26064 pszpritype.param().abi(),
26065 pszsubtype.param().abi(),
26066 )
26067 .ok()
26068 }
26069 }
26070 pub unsafe fn QueryBodyProp<P1, P2>(
26071 &self,
26072 hbody: *mut HBODY__,
26073 pszname: P1,
26074 pszcriteria: P2,
26075 fsubstring: u8,
26076 fcasesensitive: u8,
26077 ) -> windows_core::Result<()>
26078 where
26079 P1: windows_core::Param<windows_core::PCSTR>,
26080 P2: windows_core::Param<windows_core::PCSTR>,
26081 {
26082 unsafe {
26083 (windows_core::Interface::vtable(self).QueryBodyProp)(
26084 windows_core::Interface::as_raw(self),
26085 hbody as _,
26086 pszname.param().abi(),
26087 pszcriteria.param().abi(),
26088 fsubstring,
26089 fcasesensitive,
26090 )
26091 .ok()
26092 }
26093 }
26094 pub unsafe fn GetBodyProp<P1>(
26095 &self,
26096 hbody: *mut HBODY__,
26097 pszname: P1,
26098 dwflags: u32,
26099 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26100 ) -> windows_core::Result<()>
26101 where
26102 P1: windows_core::Param<windows_core::PCSTR>,
26103 {
26104 unsafe {
26105 (windows_core::Interface::vtable(self).GetBodyProp)(
26106 windows_core::Interface::as_raw(self),
26107 hbody as _,
26108 pszname.param().abi(),
26109 dwflags,
26110 core::mem::transmute(pvalue),
26111 )
26112 .ok()
26113 }
26114 }
26115 pub unsafe fn SetBodyProp<P1>(
26116 &self,
26117 hbody: *mut HBODY__,
26118 pszname: P1,
26119 dwflags: u32,
26120 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26121 ) -> windows_core::Result<()>
26122 where
26123 P1: windows_core::Param<windows_core::PCSTR>,
26124 {
26125 unsafe {
26126 (windows_core::Interface::vtable(self).SetBodyProp)(
26127 windows_core::Interface::as_raw(self),
26128 hbody as _,
26129 pszname.param().abi(),
26130 dwflags,
26131 core::mem::transmute(pvalue),
26132 )
26133 .ok()
26134 }
26135 }
26136 pub unsafe fn DeleteBodyProp<P1>(
26137 &self,
26138 hbody: *mut HBODY__,
26139 pszname: P1,
26140 ) -> windows_core::Result<()>
26141 where
26142 P1: windows_core::Param<windows_core::PCSTR>,
26143 {
26144 unsafe {
26145 (windows_core::Interface::vtable(self).DeleteBodyProp)(
26146 windows_core::Interface::as_raw(self),
26147 hbody as _,
26148 pszname.param().abi(),
26149 )
26150 .ok()
26151 }
26152 }
26153 pub unsafe fn SetOption(
26154 &self,
26155 oid: u32,
26156 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26157 ) -> windows_core::Result<()> {
26158 unsafe {
26159 (windows_core::Interface::vtable(self).SetOption)(
26160 windows_core::Interface::as_raw(self),
26161 oid,
26162 core::mem::transmute(pvalue),
26163 )
26164 .ok()
26165 }
26166 }
26167 pub unsafe fn GetOption(
26168 &self,
26169 oid: u32,
26170 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26171 ) -> windows_core::Result<()> {
26172 unsafe {
26173 (windows_core::Interface::vtable(self).GetOption)(
26174 windows_core::Interface::as_raw(self),
26175 oid,
26176 core::mem::transmute(pvalue),
26177 )
26178 .ok()
26179 }
26180 }
26181}
26182#[repr(C)]
26183pub struct IMimeMessageTree_Vtbl {
26184 pub base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl,
26185 pub Save: unsafe extern "system" fn(
26186 *mut core::ffi::c_void,
26187 *mut core::ffi::c_void,
26188 windows_core::BOOL,
26189 ) -> windows_core::HRESULT,
26190 pub GetSizeMax:
26191 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
26192 pub InitNew: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
26193 pub GetMessageSource: unsafe extern "system" fn(
26194 *mut core::ffi::c_void,
26195 *mut *mut core::ffi::c_void,
26196 u32,
26197 ) -> windows_core::HRESULT,
26198 pub GetMessageSize:
26199 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32) -> windows_core::HRESULT,
26200 pub LoadOffsetTable: unsafe extern "system" fn(
26201 *mut core::ffi::c_void,
26202 *mut core::ffi::c_void,
26203 ) -> windows_core::HRESULT,
26204 pub SaveOffsetTable: unsafe extern "system" fn(
26205 *mut core::ffi::c_void,
26206 *mut core::ffi::c_void,
26207 u32,
26208 ) -> windows_core::HRESULT,
26209 pub GetFlags:
26210 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26211 pub Commit: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26212 pub HandsOffStorage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
26213 pub BindToObject: unsafe extern "system" fn(
26214 *mut core::ffi::c_void,
26215 *const HBODY__,
26216 *const windows_core::GUID,
26217 *mut *mut core::ffi::c_void,
26218 ) -> windows_core::HRESULT,
26219 pub SaveBody: unsafe extern "system" fn(
26220 *mut core::ffi::c_void,
26221 *mut HBODY__,
26222 u32,
26223 *mut core::ffi::c_void,
26224 ) -> windows_core::HRESULT,
26225 pub InsertBody: unsafe extern "system" fn(
26226 *mut core::ffi::c_void,
26227 BODYLOCATION,
26228 *mut HBODY__,
26229 *mut *mut HBODY__,
26230 ) -> windows_core::HRESULT,
26231 pub GetBody: unsafe extern "system" fn(
26232 *mut core::ffi::c_void,
26233 BODYLOCATION,
26234 *mut HBODY__,
26235 *mut *mut HBODY__,
26236 ) -> windows_core::HRESULT,
26237 pub DeleteBody: unsafe extern "system" fn(
26238 *mut core::ffi::c_void,
26239 *mut HBODY__,
26240 u32,
26241 ) -> windows_core::HRESULT,
26242 pub MoveBody: unsafe extern "system" fn(
26243 *mut core::ffi::c_void,
26244 *mut HBODY__,
26245 BODYLOCATION,
26246 ) -> windows_core::HRESULT,
26247 pub CountBodies: unsafe extern "system" fn(
26248 *mut core::ffi::c_void,
26249 *mut HBODY__,
26250 u8,
26251 *mut u32,
26252 ) -> windows_core::HRESULT,
26253 pub FindFirst: unsafe extern "system" fn(
26254 *mut core::ffi::c_void,
26255 *mut FINDBODY,
26256 *mut *mut HBODY__,
26257 ) -> windows_core::HRESULT,
26258 pub FindNext: unsafe extern "system" fn(
26259 *mut core::ffi::c_void,
26260 *mut FINDBODY,
26261 *mut *mut HBODY__,
26262 ) -> windows_core::HRESULT,
26263 pub ResolveURL: unsafe extern "system" fn(
26264 *mut core::ffi::c_void,
26265 *mut HBODY__,
26266 windows_core::PCSTR,
26267 windows_core::PCSTR,
26268 u32,
26269 *mut *mut HBODY__,
26270 ) -> windows_core::HRESULT,
26271 pub ToMultipart: unsafe extern "system" fn(
26272 *mut core::ffi::c_void,
26273 *mut HBODY__,
26274 windows_core::PCSTR,
26275 *mut *mut HBODY__,
26276 ) -> windows_core::HRESULT,
26277 pub GetBodyOffsets: unsafe extern "system" fn(
26278 *mut core::ffi::c_void,
26279 *mut HBODY__,
26280 *mut BODYOFFSETS,
26281 ) -> windows_core::HRESULT,
26282 pub GetCharset: unsafe extern "system" fn(
26283 *mut core::ffi::c_void,
26284 *mut *mut HCHARSET__,
26285 ) -> windows_core::HRESULT,
26286 pub SetCharset: unsafe extern "system" fn(
26287 *mut core::ffi::c_void,
26288 *mut HCHARSET__,
26289 CSETAPPLYTYPE,
26290 ) -> windows_core::HRESULT,
26291 pub IsBodyType: unsafe extern "system" fn(
26292 *mut core::ffi::c_void,
26293 *mut HBODY__,
26294 IMSGBODYTYPE,
26295 ) -> windows_core::HRESULT,
26296 pub IsContentType: unsafe extern "system" fn(
26297 *mut core::ffi::c_void,
26298 *mut HBODY__,
26299 windows_core::PCSTR,
26300 windows_core::PCSTR,
26301 ) -> windows_core::HRESULT,
26302 pub QueryBodyProp: unsafe extern "system" fn(
26303 *mut core::ffi::c_void,
26304 *mut HBODY__,
26305 windows_core::PCSTR,
26306 windows_core::PCSTR,
26307 u8,
26308 u8,
26309 ) -> windows_core::HRESULT,
26310 pub GetBodyProp: unsafe extern "system" fn(
26311 *mut core::ffi::c_void,
26312 *mut HBODY__,
26313 windows_core::PCSTR,
26314 u32,
26315 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26316 ) -> windows_core::HRESULT,
26317 pub SetBodyProp: unsafe extern "system" fn(
26318 *mut core::ffi::c_void,
26319 *mut HBODY__,
26320 windows_core::PCSTR,
26321 u32,
26322 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26323 ) -> windows_core::HRESULT,
26324 pub DeleteBodyProp: unsafe extern "system" fn(
26325 *mut core::ffi::c_void,
26326 *mut HBODY__,
26327 windows_core::PCSTR,
26328 ) -> windows_core::HRESULT,
26329 pub SetOption: unsafe extern "system" fn(
26330 *mut core::ffi::c_void,
26331 u32,
26332 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26333 ) -> windows_core::HRESULT,
26334 pub GetOption: unsafe extern "system" fn(
26335 *mut core::ffi::c_void,
26336 u32,
26337 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26338 ) -> windows_core::HRESULT,
26339}
26340pub trait IMimeMessageTree_Impl: windows::Win32::System::Com::IPersistStreamInit_Impl {
26341 fn Save(
26342 &self,
26343 pstm: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
26344 fcleardirty: windows_core::BOOL,
26345 ) -> windows_core::Result<()>;
26346 fn GetSizeMax(&self) -> windows_core::Result<u64>;
26347 fn InitNew(&self) -> windows_core::Result<()>;
26348 fn GetMessageSource(
26349 &self,
26350 ppstream: windows_core::OutRef<'_, windows::Win32::System::Com::IStream>,
26351 dwflags: u32,
26352 ) -> windows_core::Result<()>;
26353 fn GetMessageSize(&self, pcbsize: *mut u32, dwflags: u32) -> windows_core::Result<()>;
26354 fn LoadOffsetTable(
26355 &self,
26356 pstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
26357 ) -> windows_core::Result<()>;
26358 fn SaveOffsetTable(
26359 &self,
26360 pstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
26361 dwflags: u32,
26362 ) -> windows_core::Result<()>;
26363 fn GetFlags(&self, pdwflags: *mut u32) -> windows_core::Result<()>;
26364 fn Commit(&self, dwflags: u32) -> windows_core::Result<()>;
26365 fn HandsOffStorage(&self) -> windows_core::Result<()>;
26366 fn BindToObject(
26367 &self,
26368 hbody: *const HBODY__,
26369 riid: *const windows_core::GUID,
26370 ppvobject: *mut *mut core::ffi::c_void,
26371 ) -> windows_core::Result<()>;
26372 fn SaveBody(
26373 &self,
26374 hbody: *mut HBODY__,
26375 dwflags: u32,
26376 pstream: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
26377 ) -> windows_core::Result<()>;
26378 fn InsertBody(
26379 &self,
26380 location: BODYLOCATION,
26381 hpivot: *mut HBODY__,
26382 phbody: *mut *mut HBODY__,
26383 ) -> windows_core::Result<()>;
26384 fn GetBody(
26385 &self,
26386 location: BODYLOCATION,
26387 hpivot: *mut HBODY__,
26388 phbody: *mut *mut HBODY__,
26389 ) -> windows_core::Result<()>;
26390 fn DeleteBody(&self, hbody: *mut HBODY__, dwflags: u32) -> windows_core::Result<()>;
26391 fn MoveBody(&self, hbody: *mut HBODY__, location: BODYLOCATION) -> windows_core::Result<()>;
26392 fn CountBodies(
26393 &self,
26394 hparent: *mut HBODY__,
26395 frecurse: u8,
26396 pcbodies: *mut u32,
26397 ) -> windows_core::Result<()>;
26398 fn FindFirst(
26399 &self,
26400 pfindbody: *mut FINDBODY,
26401 phbody: *mut *mut HBODY__,
26402 ) -> windows_core::Result<()>;
26403 fn FindNext(
26404 &self,
26405 pfindbody: *mut FINDBODY,
26406 phbody: *mut *mut HBODY__,
26407 ) -> windows_core::Result<()>;
26408 fn ResolveURL(
26409 &self,
26410 hrelated: *mut HBODY__,
26411 pszbase: &windows_core::PCSTR,
26412 pszurl: &windows_core::PCSTR,
26413 dwflags: u32,
26414 phbody: *mut *mut HBODY__,
26415 ) -> windows_core::Result<()>;
26416 fn ToMultipart(
26417 &self,
26418 hbody: *mut HBODY__,
26419 pszsubtype: &windows_core::PCSTR,
26420 phmultipart: *mut *mut HBODY__,
26421 ) -> windows_core::Result<()>;
26422 fn GetBodyOffsets(
26423 &self,
26424 hbody: *mut HBODY__,
26425 poffsets: *mut BODYOFFSETS,
26426 ) -> windows_core::Result<()>;
26427 fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()>;
26428 fn SetCharset(
26429 &self,
26430 hcharset: *mut HCHARSET__,
26431 applytype: CSETAPPLYTYPE,
26432 ) -> windows_core::Result<()>;
26433 fn IsBodyType(&self, hbody: *mut HBODY__, bodytype: IMSGBODYTYPE) -> windows_core::Result<()>;
26434 fn IsContentType(
26435 &self,
26436 hbody: *mut HBODY__,
26437 pszpritype: &windows_core::PCSTR,
26438 pszsubtype: &windows_core::PCSTR,
26439 ) -> windows_core::Result<()>;
26440 fn QueryBodyProp(
26441 &self,
26442 hbody: *mut HBODY__,
26443 pszname: &windows_core::PCSTR,
26444 pszcriteria: &windows_core::PCSTR,
26445 fsubstring: u8,
26446 fcasesensitive: u8,
26447 ) -> windows_core::Result<()>;
26448 fn GetBodyProp(
26449 &self,
26450 hbody: *mut HBODY__,
26451 pszname: &windows_core::PCSTR,
26452 dwflags: u32,
26453 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26454 ) -> windows_core::Result<()>;
26455 fn SetBodyProp(
26456 &self,
26457 hbody: *mut HBODY__,
26458 pszname: &windows_core::PCSTR,
26459 dwflags: u32,
26460 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26461 ) -> windows_core::Result<()>;
26462 fn DeleteBodyProp(
26463 &self,
26464 hbody: *mut HBODY__,
26465 pszname: &windows_core::PCSTR,
26466 ) -> windows_core::Result<()>;
26467 fn SetOption(
26468 &self,
26469 oid: u32,
26470 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26471 ) -> windows_core::Result<()>;
26472 fn GetOption(
26473 &self,
26474 oid: u32,
26475 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26476 ) -> windows_core::Result<()>;
26477}
26478impl IMimeMessageTree_Vtbl {
26479 pub const fn new<Identity: IMimeMessageTree_Impl, const OFFSET: isize>() -> Self {
26480 unsafe extern "system" fn Save<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26481 this: *mut core::ffi::c_void,
26482 pstm: *mut core::ffi::c_void,
26483 fcleardirty: windows_core::BOOL,
26484 ) -> windows_core::HRESULT {
26485 unsafe {
26486 let this: &Identity =
26487 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26488 IMimeMessageTree_Impl::Save(
26489 this,
26490 core::mem::transmute_copy(&pstm),
26491 core::mem::transmute_copy(&fcleardirty),
26492 )
26493 .into()
26494 }
26495 }
26496 unsafe extern "system" fn GetSizeMax<
26497 Identity: IMimeMessageTree_Impl,
26498 const OFFSET: isize,
26499 >(
26500 this: *mut core::ffi::c_void,
26501 pcbsize: *mut u64,
26502 ) -> windows_core::HRESULT {
26503 unsafe {
26504 let this: &Identity =
26505 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26506 match IMimeMessageTree_Impl::GetSizeMax(this) {
26507 Ok(ok__) => {
26508 pcbsize.write(core::mem::transmute(ok__));
26509 windows_core::HRESULT(0)
26510 }
26511 Err(err) => err.into(),
26512 }
26513 }
26514 }
26515 unsafe extern "system" fn InitNew<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26516 this: *mut core::ffi::c_void,
26517 ) -> windows_core::HRESULT {
26518 unsafe {
26519 let this: &Identity =
26520 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26521 IMimeMessageTree_Impl::InitNew(this).into()
26522 }
26523 }
26524 unsafe extern "system" fn GetMessageSource<
26525 Identity: IMimeMessageTree_Impl,
26526 const OFFSET: isize,
26527 >(
26528 this: *mut core::ffi::c_void,
26529 ppstream: *mut *mut core::ffi::c_void,
26530 dwflags: u32,
26531 ) -> windows_core::HRESULT {
26532 unsafe {
26533 let this: &Identity =
26534 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26535 IMimeMessageTree_Impl::GetMessageSource(
26536 this,
26537 core::mem::transmute_copy(&ppstream),
26538 core::mem::transmute_copy(&dwflags),
26539 )
26540 .into()
26541 }
26542 }
26543 unsafe extern "system" fn GetMessageSize<
26544 Identity: IMimeMessageTree_Impl,
26545 const OFFSET: isize,
26546 >(
26547 this: *mut core::ffi::c_void,
26548 pcbsize: *mut u32,
26549 dwflags: u32,
26550 ) -> windows_core::HRESULT {
26551 unsafe {
26552 let this: &Identity =
26553 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26554 IMimeMessageTree_Impl::GetMessageSize(
26555 this,
26556 core::mem::transmute_copy(&pcbsize),
26557 core::mem::transmute_copy(&dwflags),
26558 )
26559 .into()
26560 }
26561 }
26562 unsafe extern "system" fn LoadOffsetTable<
26563 Identity: IMimeMessageTree_Impl,
26564 const OFFSET: isize,
26565 >(
26566 this: *mut core::ffi::c_void,
26567 pstream: *mut core::ffi::c_void,
26568 ) -> windows_core::HRESULT {
26569 unsafe {
26570 let this: &Identity =
26571 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26572 IMimeMessageTree_Impl::LoadOffsetTable(this, core::mem::transmute_copy(&pstream))
26573 .into()
26574 }
26575 }
26576 unsafe extern "system" fn SaveOffsetTable<
26577 Identity: IMimeMessageTree_Impl,
26578 const OFFSET: isize,
26579 >(
26580 this: *mut core::ffi::c_void,
26581 pstream: *mut core::ffi::c_void,
26582 dwflags: u32,
26583 ) -> windows_core::HRESULT {
26584 unsafe {
26585 let this: &Identity =
26586 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26587 IMimeMessageTree_Impl::SaveOffsetTable(
26588 this,
26589 core::mem::transmute_copy(&pstream),
26590 core::mem::transmute_copy(&dwflags),
26591 )
26592 .into()
26593 }
26594 }
26595 unsafe extern "system" fn GetFlags<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26596 this: *mut core::ffi::c_void,
26597 pdwflags: *mut u32,
26598 ) -> windows_core::HRESULT {
26599 unsafe {
26600 let this: &Identity =
26601 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26602 IMimeMessageTree_Impl::GetFlags(this, core::mem::transmute_copy(&pdwflags)).into()
26603 }
26604 }
26605 unsafe extern "system" fn Commit<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26606 this: *mut core::ffi::c_void,
26607 dwflags: u32,
26608 ) -> windows_core::HRESULT {
26609 unsafe {
26610 let this: &Identity =
26611 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26612 IMimeMessageTree_Impl::Commit(this, core::mem::transmute_copy(&dwflags)).into()
26613 }
26614 }
26615 unsafe extern "system" fn HandsOffStorage<
26616 Identity: IMimeMessageTree_Impl,
26617 const OFFSET: isize,
26618 >(
26619 this: *mut core::ffi::c_void,
26620 ) -> windows_core::HRESULT {
26621 unsafe {
26622 let this: &Identity =
26623 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26624 IMimeMessageTree_Impl::HandsOffStorage(this).into()
26625 }
26626 }
26627 unsafe extern "system" fn BindToObject<
26628 Identity: IMimeMessageTree_Impl,
26629 const OFFSET: isize,
26630 >(
26631 this: *mut core::ffi::c_void,
26632 hbody: *const HBODY__,
26633 riid: *const windows_core::GUID,
26634 ppvobject: *mut *mut core::ffi::c_void,
26635 ) -> windows_core::HRESULT {
26636 unsafe {
26637 let this: &Identity =
26638 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26639 IMimeMessageTree_Impl::BindToObject(
26640 this,
26641 core::mem::transmute_copy(&hbody),
26642 core::mem::transmute_copy(&riid),
26643 core::mem::transmute_copy(&ppvobject),
26644 )
26645 .into()
26646 }
26647 }
26648 unsafe extern "system" fn SaveBody<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26649 this: *mut core::ffi::c_void,
26650 hbody: *mut HBODY__,
26651 dwflags: u32,
26652 pstream: *mut core::ffi::c_void,
26653 ) -> windows_core::HRESULT {
26654 unsafe {
26655 let this: &Identity =
26656 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26657 IMimeMessageTree_Impl::SaveBody(
26658 this,
26659 core::mem::transmute_copy(&hbody),
26660 core::mem::transmute_copy(&dwflags),
26661 core::mem::transmute_copy(&pstream),
26662 )
26663 .into()
26664 }
26665 }
26666 unsafe extern "system" fn InsertBody<
26667 Identity: IMimeMessageTree_Impl,
26668 const OFFSET: isize,
26669 >(
26670 this: *mut core::ffi::c_void,
26671 location: BODYLOCATION,
26672 hpivot: *mut HBODY__,
26673 phbody: *mut *mut HBODY__,
26674 ) -> windows_core::HRESULT {
26675 unsafe {
26676 let this: &Identity =
26677 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26678 IMimeMessageTree_Impl::InsertBody(
26679 this,
26680 core::mem::transmute_copy(&location),
26681 core::mem::transmute_copy(&hpivot),
26682 core::mem::transmute_copy(&phbody),
26683 )
26684 .into()
26685 }
26686 }
26687 unsafe extern "system" fn GetBody<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26688 this: *mut core::ffi::c_void,
26689 location: BODYLOCATION,
26690 hpivot: *mut HBODY__,
26691 phbody: *mut *mut HBODY__,
26692 ) -> windows_core::HRESULT {
26693 unsafe {
26694 let this: &Identity =
26695 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26696 IMimeMessageTree_Impl::GetBody(
26697 this,
26698 core::mem::transmute_copy(&location),
26699 core::mem::transmute_copy(&hpivot),
26700 core::mem::transmute_copy(&phbody),
26701 )
26702 .into()
26703 }
26704 }
26705 unsafe extern "system" fn DeleteBody<
26706 Identity: IMimeMessageTree_Impl,
26707 const OFFSET: isize,
26708 >(
26709 this: *mut core::ffi::c_void,
26710 hbody: *mut HBODY__,
26711 dwflags: u32,
26712 ) -> windows_core::HRESULT {
26713 unsafe {
26714 let this: &Identity =
26715 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26716 IMimeMessageTree_Impl::DeleteBody(
26717 this,
26718 core::mem::transmute_copy(&hbody),
26719 core::mem::transmute_copy(&dwflags),
26720 )
26721 .into()
26722 }
26723 }
26724 unsafe extern "system" fn MoveBody<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26725 this: *mut core::ffi::c_void,
26726 hbody: *mut HBODY__,
26727 location: BODYLOCATION,
26728 ) -> windows_core::HRESULT {
26729 unsafe {
26730 let this: &Identity =
26731 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26732 IMimeMessageTree_Impl::MoveBody(
26733 this,
26734 core::mem::transmute_copy(&hbody),
26735 core::mem::transmute_copy(&location),
26736 )
26737 .into()
26738 }
26739 }
26740 unsafe extern "system" fn CountBodies<
26741 Identity: IMimeMessageTree_Impl,
26742 const OFFSET: isize,
26743 >(
26744 this: *mut core::ffi::c_void,
26745 hparent: *mut HBODY__,
26746 frecurse: u8,
26747 pcbodies: *mut u32,
26748 ) -> windows_core::HRESULT {
26749 unsafe {
26750 let this: &Identity =
26751 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26752 IMimeMessageTree_Impl::CountBodies(
26753 this,
26754 core::mem::transmute_copy(&hparent),
26755 core::mem::transmute_copy(&frecurse),
26756 core::mem::transmute_copy(&pcbodies),
26757 )
26758 .into()
26759 }
26760 }
26761 unsafe extern "system" fn FindFirst<
26762 Identity: IMimeMessageTree_Impl,
26763 const OFFSET: isize,
26764 >(
26765 this: *mut core::ffi::c_void,
26766 pfindbody: *mut FINDBODY,
26767 phbody: *mut *mut HBODY__,
26768 ) -> windows_core::HRESULT {
26769 unsafe {
26770 let this: &Identity =
26771 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26772 IMimeMessageTree_Impl::FindFirst(
26773 this,
26774 core::mem::transmute_copy(&pfindbody),
26775 core::mem::transmute_copy(&phbody),
26776 )
26777 .into()
26778 }
26779 }
26780 unsafe extern "system" fn FindNext<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26781 this: *mut core::ffi::c_void,
26782 pfindbody: *mut FINDBODY,
26783 phbody: *mut *mut HBODY__,
26784 ) -> windows_core::HRESULT {
26785 unsafe {
26786 let this: &Identity =
26787 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26788 IMimeMessageTree_Impl::FindNext(
26789 this,
26790 core::mem::transmute_copy(&pfindbody),
26791 core::mem::transmute_copy(&phbody),
26792 )
26793 .into()
26794 }
26795 }
26796 unsafe extern "system" fn ResolveURL<
26797 Identity: IMimeMessageTree_Impl,
26798 const OFFSET: isize,
26799 >(
26800 this: *mut core::ffi::c_void,
26801 hrelated: *mut HBODY__,
26802 pszbase: windows_core::PCSTR,
26803 pszurl: windows_core::PCSTR,
26804 dwflags: u32,
26805 phbody: *mut *mut HBODY__,
26806 ) -> windows_core::HRESULT {
26807 unsafe {
26808 let this: &Identity =
26809 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26810 IMimeMessageTree_Impl::ResolveURL(
26811 this,
26812 core::mem::transmute_copy(&hrelated),
26813 core::mem::transmute(&pszbase),
26814 core::mem::transmute(&pszurl),
26815 core::mem::transmute_copy(&dwflags),
26816 core::mem::transmute_copy(&phbody),
26817 )
26818 .into()
26819 }
26820 }
26821 unsafe extern "system" fn ToMultipart<
26822 Identity: IMimeMessageTree_Impl,
26823 const OFFSET: isize,
26824 >(
26825 this: *mut core::ffi::c_void,
26826 hbody: *mut HBODY__,
26827 pszsubtype: windows_core::PCSTR,
26828 phmultipart: *mut *mut HBODY__,
26829 ) -> windows_core::HRESULT {
26830 unsafe {
26831 let this: &Identity =
26832 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26833 IMimeMessageTree_Impl::ToMultipart(
26834 this,
26835 core::mem::transmute_copy(&hbody),
26836 core::mem::transmute(&pszsubtype),
26837 core::mem::transmute_copy(&phmultipart),
26838 )
26839 .into()
26840 }
26841 }
26842 unsafe extern "system" fn GetBodyOffsets<
26843 Identity: IMimeMessageTree_Impl,
26844 const OFFSET: isize,
26845 >(
26846 this: *mut core::ffi::c_void,
26847 hbody: *mut HBODY__,
26848 poffsets: *mut BODYOFFSETS,
26849 ) -> windows_core::HRESULT {
26850 unsafe {
26851 let this: &Identity =
26852 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26853 IMimeMessageTree_Impl::GetBodyOffsets(
26854 this,
26855 core::mem::transmute_copy(&hbody),
26856 core::mem::transmute_copy(&poffsets),
26857 )
26858 .into()
26859 }
26860 }
26861 unsafe extern "system" fn GetCharset<
26862 Identity: IMimeMessageTree_Impl,
26863 const OFFSET: isize,
26864 >(
26865 this: *mut core::ffi::c_void,
26866 phcharset: *mut *mut HCHARSET__,
26867 ) -> windows_core::HRESULT {
26868 unsafe {
26869 let this: &Identity =
26870 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26871 IMimeMessageTree_Impl::GetCharset(this, core::mem::transmute_copy(&phcharset))
26872 .into()
26873 }
26874 }
26875 unsafe extern "system" fn SetCharset<
26876 Identity: IMimeMessageTree_Impl,
26877 const OFFSET: isize,
26878 >(
26879 this: *mut core::ffi::c_void,
26880 hcharset: *mut HCHARSET__,
26881 applytype: CSETAPPLYTYPE,
26882 ) -> windows_core::HRESULT {
26883 unsafe {
26884 let this: &Identity =
26885 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26886 IMimeMessageTree_Impl::SetCharset(
26887 this,
26888 core::mem::transmute_copy(&hcharset),
26889 core::mem::transmute_copy(&applytype),
26890 )
26891 .into()
26892 }
26893 }
26894 unsafe extern "system" fn IsBodyType<
26895 Identity: IMimeMessageTree_Impl,
26896 const OFFSET: isize,
26897 >(
26898 this: *mut core::ffi::c_void,
26899 hbody: *mut HBODY__,
26900 bodytype: IMSGBODYTYPE,
26901 ) -> windows_core::HRESULT {
26902 unsafe {
26903 let this: &Identity =
26904 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26905 IMimeMessageTree_Impl::IsBodyType(
26906 this,
26907 core::mem::transmute_copy(&hbody),
26908 core::mem::transmute_copy(&bodytype),
26909 )
26910 .into()
26911 }
26912 }
26913 unsafe extern "system" fn IsContentType<
26914 Identity: IMimeMessageTree_Impl,
26915 const OFFSET: isize,
26916 >(
26917 this: *mut core::ffi::c_void,
26918 hbody: *mut HBODY__,
26919 pszpritype: windows_core::PCSTR,
26920 pszsubtype: windows_core::PCSTR,
26921 ) -> windows_core::HRESULT {
26922 unsafe {
26923 let this: &Identity =
26924 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26925 IMimeMessageTree_Impl::IsContentType(
26926 this,
26927 core::mem::transmute_copy(&hbody),
26928 core::mem::transmute(&pszpritype),
26929 core::mem::transmute(&pszsubtype),
26930 )
26931 .into()
26932 }
26933 }
26934 unsafe extern "system" fn QueryBodyProp<
26935 Identity: IMimeMessageTree_Impl,
26936 const OFFSET: isize,
26937 >(
26938 this: *mut core::ffi::c_void,
26939 hbody: *mut HBODY__,
26940 pszname: windows_core::PCSTR,
26941 pszcriteria: windows_core::PCSTR,
26942 fsubstring: u8,
26943 fcasesensitive: u8,
26944 ) -> windows_core::HRESULT {
26945 unsafe {
26946 let this: &Identity =
26947 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26948 IMimeMessageTree_Impl::QueryBodyProp(
26949 this,
26950 core::mem::transmute_copy(&hbody),
26951 core::mem::transmute(&pszname),
26952 core::mem::transmute(&pszcriteria),
26953 core::mem::transmute_copy(&fsubstring),
26954 core::mem::transmute_copy(&fcasesensitive),
26955 )
26956 .into()
26957 }
26958 }
26959 unsafe extern "system" fn GetBodyProp<
26960 Identity: IMimeMessageTree_Impl,
26961 const OFFSET: isize,
26962 >(
26963 this: *mut core::ffi::c_void,
26964 hbody: *mut HBODY__,
26965 pszname: windows_core::PCSTR,
26966 dwflags: u32,
26967 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26968 ) -> windows_core::HRESULT {
26969 unsafe {
26970 let this: &Identity =
26971 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26972 IMimeMessageTree_Impl::GetBodyProp(
26973 this,
26974 core::mem::transmute_copy(&hbody),
26975 core::mem::transmute(&pszname),
26976 core::mem::transmute_copy(&dwflags),
26977 core::mem::transmute_copy(&pvalue),
26978 )
26979 .into()
26980 }
26981 }
26982 unsafe extern "system" fn SetBodyProp<
26983 Identity: IMimeMessageTree_Impl,
26984 const OFFSET: isize,
26985 >(
26986 this: *mut core::ffi::c_void,
26987 hbody: *mut HBODY__,
26988 pszname: windows_core::PCSTR,
26989 dwflags: u32,
26990 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26991 ) -> windows_core::HRESULT {
26992 unsafe {
26993 let this: &Identity =
26994 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26995 IMimeMessageTree_Impl::SetBodyProp(
26996 this,
26997 core::mem::transmute_copy(&hbody),
26998 core::mem::transmute(&pszname),
26999 core::mem::transmute_copy(&dwflags),
27000 core::mem::transmute_copy(&pvalue),
27001 )
27002 .into()
27003 }
27004 }
27005 unsafe extern "system" fn DeleteBodyProp<
27006 Identity: IMimeMessageTree_Impl,
27007 const OFFSET: isize,
27008 >(
27009 this: *mut core::ffi::c_void,
27010 hbody: *mut HBODY__,
27011 pszname: windows_core::PCSTR,
27012 ) -> windows_core::HRESULT {
27013 unsafe {
27014 let this: &Identity =
27015 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27016 IMimeMessageTree_Impl::DeleteBodyProp(
27017 this,
27018 core::mem::transmute_copy(&hbody),
27019 core::mem::transmute(&pszname),
27020 )
27021 .into()
27022 }
27023 }
27024 unsafe extern "system" fn SetOption<
27025 Identity: IMimeMessageTree_Impl,
27026 const OFFSET: isize,
27027 >(
27028 this: *mut core::ffi::c_void,
27029 oid: u32,
27030 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27031 ) -> windows_core::HRESULT {
27032 unsafe {
27033 let this: &Identity =
27034 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27035 IMimeMessageTree_Impl::SetOption(
27036 this,
27037 core::mem::transmute_copy(&oid),
27038 core::mem::transmute_copy(&pvalue),
27039 )
27040 .into()
27041 }
27042 }
27043 unsafe extern "system" fn GetOption<
27044 Identity: IMimeMessageTree_Impl,
27045 const OFFSET: isize,
27046 >(
27047 this: *mut core::ffi::c_void,
27048 oid: u32,
27049 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27050 ) -> windows_core::HRESULT {
27051 unsafe {
27052 let this: &Identity =
27053 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27054 IMimeMessageTree_Impl::GetOption(
27055 this,
27056 core::mem::transmute_copy(&oid),
27057 core::mem::transmute_copy(&pvalue),
27058 )
27059 .into()
27060 }
27061 }
27062 Self {
27063 base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl::new::<Identity, OFFSET>(),
27064 Save: Save::<Identity, OFFSET>,
27065 GetSizeMax: GetSizeMax::<Identity, OFFSET>,
27066 InitNew: InitNew::<Identity, OFFSET>,
27067 GetMessageSource: GetMessageSource::<Identity, OFFSET>,
27068 GetMessageSize: GetMessageSize::<Identity, OFFSET>,
27069 LoadOffsetTable: LoadOffsetTable::<Identity, OFFSET>,
27070 SaveOffsetTable: SaveOffsetTable::<Identity, OFFSET>,
27071 GetFlags: GetFlags::<Identity, OFFSET>,
27072 Commit: Commit::<Identity, OFFSET>,
27073 HandsOffStorage: HandsOffStorage::<Identity, OFFSET>,
27074 BindToObject: BindToObject::<Identity, OFFSET>,
27075 SaveBody: SaveBody::<Identity, OFFSET>,
27076 InsertBody: InsertBody::<Identity, OFFSET>,
27077 GetBody: GetBody::<Identity, OFFSET>,
27078 DeleteBody: DeleteBody::<Identity, OFFSET>,
27079 MoveBody: MoveBody::<Identity, OFFSET>,
27080 CountBodies: CountBodies::<Identity, OFFSET>,
27081 FindFirst: FindFirst::<Identity, OFFSET>,
27082 FindNext: FindNext::<Identity, OFFSET>,
27083 ResolveURL: ResolveURL::<Identity, OFFSET>,
27084 ToMultipart: ToMultipart::<Identity, OFFSET>,
27085 GetBodyOffsets: GetBodyOffsets::<Identity, OFFSET>,
27086 GetCharset: GetCharset::<Identity, OFFSET>,
27087 SetCharset: SetCharset::<Identity, OFFSET>,
27088 IsBodyType: IsBodyType::<Identity, OFFSET>,
27089 IsContentType: IsContentType::<Identity, OFFSET>,
27090 QueryBodyProp: QueryBodyProp::<Identity, OFFSET>,
27091 GetBodyProp: GetBodyProp::<Identity, OFFSET>,
27092 SetBodyProp: SetBodyProp::<Identity, OFFSET>,
27093 DeleteBodyProp: DeleteBodyProp::<Identity, OFFSET>,
27094 SetOption: SetOption::<Identity, OFFSET>,
27095 GetOption: GetOption::<Identity, OFFSET>,
27096 }
27097 }
27098 pub fn matches(iid: &windows_core::GUID) -> bool {
27099 iid == & < IMimeMessageTree as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersist as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersistStreamInit as windows_core::Interface >::IID
27100 }
27101}
27102impl windows_core::RuntimeName for IMimeMessageTree {}
27103windows_core::imp::define_interface!(
27104 IMimeObjResolver,
27105 IMimeObjResolver_Vtbl,
27106 0xfeceaffd_c441_11d1_960e_00c04fbd7c09
27107);
27108windows_core::imp::interface_hierarchy!(IMimeObjResolver, windows_core::IUnknown);
27109impl IMimeObjResolver {
27110 pub unsafe fn MimeOleObjectFromMoniker<P1, P2>(
27111 &self,
27112 bindf: windows::Win32::System::Com::Urlmon::BINDF,
27113 pmkoriginal: P1,
27114 pbindctx: P2,
27115 riid: *const windows_core::GUID,
27116 ppvobject: *mut *mut core::ffi::c_void,
27117 ppmknew: *mut Option<windows::Win32::System::Com::IMoniker>,
27118 ) -> windows_core::Result<()>
27119 where
27120 P1: windows_core::Param<windows::Win32::System::Com::IMoniker>,
27121 P2: windows_core::Param<windows::Win32::System::Com::IBindCtx>,
27122 {
27123 unsafe {
27124 (windows_core::Interface::vtable(self).MimeOleObjectFromMoniker)(
27125 windows_core::Interface::as_raw(self),
27126 bindf,
27127 pmkoriginal.param().abi(),
27128 pbindctx.param().abi(),
27129 riid,
27130 ppvobject as _,
27131 core::mem::transmute(ppmknew),
27132 )
27133 .ok()
27134 }
27135 }
27136}
27137#[repr(C)]
27138pub struct IMimeObjResolver_Vtbl {
27139 pub base__: windows_core::IUnknown_Vtbl,
27140 pub MimeOleObjectFromMoniker: unsafe extern "system" fn(
27141 *mut core::ffi::c_void,
27142 windows::Win32::System::Com::Urlmon::BINDF,
27143 *mut core::ffi::c_void,
27144 *mut core::ffi::c_void,
27145 *const windows_core::GUID,
27146 *mut *mut core::ffi::c_void,
27147 *mut *mut core::ffi::c_void,
27148 ) -> windows_core::HRESULT,
27149}
27150pub trait IMimeObjResolver_Impl: windows_core::IUnknownImpl {
27151 fn MimeOleObjectFromMoniker(
27152 &self,
27153 bindf: windows::Win32::System::Com::Urlmon::BINDF,
27154 pmkoriginal: windows_core::Ref<'_, windows::Win32::System::Com::IMoniker>,
27155 pbindctx: windows_core::Ref<'_, windows::Win32::System::Com::IBindCtx>,
27156 riid: *const windows_core::GUID,
27157 ppvobject: *mut *mut core::ffi::c_void,
27158 ppmknew: windows_core::OutRef<'_, windows::Win32::System::Com::IMoniker>,
27159 ) -> windows_core::Result<()>;
27160}
27161impl IMimeObjResolver_Vtbl {
27162 pub const fn new<Identity: IMimeObjResolver_Impl, const OFFSET: isize>() -> Self {
27163 unsafe extern "system" fn MimeOleObjectFromMoniker<
27164 Identity: IMimeObjResolver_Impl,
27165 const OFFSET: isize,
27166 >(
27167 this: *mut core::ffi::c_void,
27168 bindf: windows::Win32::System::Com::Urlmon::BINDF,
27169 pmkoriginal: *mut core::ffi::c_void,
27170 pbindctx: *mut core::ffi::c_void,
27171 riid: *const windows_core::GUID,
27172 ppvobject: *mut *mut core::ffi::c_void,
27173 ppmknew: *mut *mut core::ffi::c_void,
27174 ) -> windows_core::HRESULT {
27175 unsafe {
27176 let this: &Identity =
27177 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27178 IMimeObjResolver_Impl::MimeOleObjectFromMoniker(
27179 this,
27180 core::mem::transmute_copy(&bindf),
27181 core::mem::transmute_copy(&pmkoriginal),
27182 core::mem::transmute_copy(&pbindctx),
27183 core::mem::transmute_copy(&riid),
27184 core::mem::transmute_copy(&ppvobject),
27185 core::mem::transmute_copy(&ppmknew),
27186 )
27187 .into()
27188 }
27189 }
27190 Self {
27191 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27192 MimeOleObjectFromMoniker: MimeOleObjectFromMoniker::<Identity, OFFSET>,
27193 }
27194 }
27195 pub fn matches(iid: &windows_core::GUID) -> bool {
27196 iid == &<IMimeObjResolver as windows_core::Interface>::IID
27197 }
27198}
27199impl windows_core::RuntimeName for IMimeObjResolver {}
27200windows_core::imp::define_interface!(
27201 IMimePropertySchema,
27202 IMimePropertySchema_Vtbl,
27203 0xfd853cec_7f86_11d0_8252_00c04fd85ab4
27204);
27205windows_core::imp::interface_hierarchy!(IMimePropertySchema, windows_core::IUnknown);
27206impl IMimePropertySchema {
27207 pub unsafe fn RegisterProperty<P0>(
27208 &self,
27209 pszname: P0,
27210 dwflags: u32,
27211 dwrownumber: u32,
27212 vtdefault: u16,
27213 pdwpropid: *mut u32,
27214 ) -> windows_core::Result<()>
27215 where
27216 P0: windows_core::Param<windows_core::PCSTR>,
27217 {
27218 unsafe {
27219 (windows_core::Interface::vtable(self).RegisterProperty)(
27220 windows_core::Interface::as_raw(self),
27221 pszname.param().abi(),
27222 dwflags,
27223 dwrownumber,
27224 vtdefault,
27225 pdwpropid as _,
27226 )
27227 .ok()
27228 }
27229 }
27230 pub unsafe fn ModifyProperty<P0>(
27231 &self,
27232 pszname: P0,
27233 dwflags: u32,
27234 dwrownumber: u32,
27235 vtdefault: u16,
27236 ) -> windows_core::Result<()>
27237 where
27238 P0: windows_core::Param<windows_core::PCSTR>,
27239 {
27240 unsafe {
27241 (windows_core::Interface::vtable(self).ModifyProperty)(
27242 windows_core::Interface::as_raw(self),
27243 pszname.param().abi(),
27244 dwflags,
27245 dwrownumber,
27246 vtdefault,
27247 )
27248 .ok()
27249 }
27250 }
27251 pub unsafe fn GetPropertyId<P0>(
27252 &self,
27253 pszname: P0,
27254 pdwpropid: *mut u32,
27255 ) -> windows_core::Result<()>
27256 where
27257 P0: windows_core::Param<windows_core::PCSTR>,
27258 {
27259 unsafe {
27260 (windows_core::Interface::vtable(self).GetPropertyId)(
27261 windows_core::Interface::as_raw(self),
27262 pszname.param().abi(),
27263 pdwpropid as _,
27264 )
27265 .ok()
27266 }
27267 }
27268 pub unsafe fn GetPropertyName(
27269 &self,
27270 dwpropid: u32,
27271 ppszname: *mut windows_core::PSTR,
27272 ) -> windows_core::Result<()> {
27273 unsafe {
27274 (windows_core::Interface::vtable(self).GetPropertyName)(
27275 windows_core::Interface::as_raw(self),
27276 dwpropid,
27277 ppszname as _,
27278 )
27279 .ok()
27280 }
27281 }
27282 pub unsafe fn RegisterAddressType<P0>(
27283 &self,
27284 pszname: P0,
27285 pdwadrtype: *mut u32,
27286 ) -> windows_core::Result<()>
27287 where
27288 P0: windows_core::Param<windows_core::PCSTR>,
27289 {
27290 unsafe {
27291 (windows_core::Interface::vtable(self).RegisterAddressType)(
27292 windows_core::Interface::as_raw(self),
27293 pszname.param().abi(),
27294 pdwadrtype as _,
27295 )
27296 .ok()
27297 }
27298 }
27299}
27300#[repr(C)]
27301pub struct IMimePropertySchema_Vtbl {
27302 pub base__: windows_core::IUnknown_Vtbl,
27303 pub RegisterProperty: unsafe extern "system" fn(
27304 *mut core::ffi::c_void,
27305 windows_core::PCSTR,
27306 u32,
27307 u32,
27308 u16,
27309 *mut u32,
27310 ) -> windows_core::HRESULT,
27311 pub ModifyProperty: unsafe extern "system" fn(
27312 *mut core::ffi::c_void,
27313 windows_core::PCSTR,
27314 u32,
27315 u32,
27316 u16,
27317 ) -> windows_core::HRESULT,
27318 pub GetPropertyId: unsafe extern "system" fn(
27319 *mut core::ffi::c_void,
27320 windows_core::PCSTR,
27321 *mut u32,
27322 ) -> windows_core::HRESULT,
27323 pub GetPropertyName: unsafe extern "system" fn(
27324 *mut core::ffi::c_void,
27325 u32,
27326 *mut windows_core::PSTR,
27327 ) -> windows_core::HRESULT,
27328 pub RegisterAddressType: unsafe extern "system" fn(
27329 *mut core::ffi::c_void,
27330 windows_core::PCSTR,
27331 *mut u32,
27332 ) -> windows_core::HRESULT,
27333}
27334pub trait IMimePropertySchema_Impl: windows_core::IUnknownImpl {
27335 fn RegisterProperty(
27336 &self,
27337 pszname: &windows_core::PCSTR,
27338 dwflags: u32,
27339 dwrownumber: u32,
27340 vtdefault: u16,
27341 pdwpropid: *mut u32,
27342 ) -> windows_core::Result<()>;
27343 fn ModifyProperty(
27344 &self,
27345 pszname: &windows_core::PCSTR,
27346 dwflags: u32,
27347 dwrownumber: u32,
27348 vtdefault: u16,
27349 ) -> windows_core::Result<()>;
27350 fn GetPropertyId(
27351 &self,
27352 pszname: &windows_core::PCSTR,
27353 pdwpropid: *mut u32,
27354 ) -> windows_core::Result<()>;
27355 fn GetPropertyName(
27356 &self,
27357 dwpropid: u32,
27358 ppszname: *mut windows_core::PSTR,
27359 ) -> windows_core::Result<()>;
27360 fn RegisterAddressType(
27361 &self,
27362 pszname: &windows_core::PCSTR,
27363 pdwadrtype: *mut u32,
27364 ) -> windows_core::Result<()>;
27365}
27366impl IMimePropertySchema_Vtbl {
27367 pub const fn new<Identity: IMimePropertySchema_Impl, const OFFSET: isize>() -> Self {
27368 unsafe extern "system" fn RegisterProperty<
27369 Identity: IMimePropertySchema_Impl,
27370 const OFFSET: isize,
27371 >(
27372 this: *mut core::ffi::c_void,
27373 pszname: windows_core::PCSTR,
27374 dwflags: u32,
27375 dwrownumber: u32,
27376 vtdefault: u16,
27377 pdwpropid: *mut u32,
27378 ) -> windows_core::HRESULT {
27379 unsafe {
27380 let this: &Identity =
27381 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27382 IMimePropertySchema_Impl::RegisterProperty(
27383 this,
27384 core::mem::transmute(&pszname),
27385 core::mem::transmute_copy(&dwflags),
27386 core::mem::transmute_copy(&dwrownumber),
27387 core::mem::transmute_copy(&vtdefault),
27388 core::mem::transmute_copy(&pdwpropid),
27389 )
27390 .into()
27391 }
27392 }
27393 unsafe extern "system" fn ModifyProperty<
27394 Identity: IMimePropertySchema_Impl,
27395 const OFFSET: isize,
27396 >(
27397 this: *mut core::ffi::c_void,
27398 pszname: windows_core::PCSTR,
27399 dwflags: u32,
27400 dwrownumber: u32,
27401 vtdefault: u16,
27402 ) -> windows_core::HRESULT {
27403 unsafe {
27404 let this: &Identity =
27405 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27406 IMimePropertySchema_Impl::ModifyProperty(
27407 this,
27408 core::mem::transmute(&pszname),
27409 core::mem::transmute_copy(&dwflags),
27410 core::mem::transmute_copy(&dwrownumber),
27411 core::mem::transmute_copy(&vtdefault),
27412 )
27413 .into()
27414 }
27415 }
27416 unsafe extern "system" fn GetPropertyId<
27417 Identity: IMimePropertySchema_Impl,
27418 const OFFSET: isize,
27419 >(
27420 this: *mut core::ffi::c_void,
27421 pszname: windows_core::PCSTR,
27422 pdwpropid: *mut u32,
27423 ) -> windows_core::HRESULT {
27424 unsafe {
27425 let this: &Identity =
27426 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27427 IMimePropertySchema_Impl::GetPropertyId(
27428 this,
27429 core::mem::transmute(&pszname),
27430 core::mem::transmute_copy(&pdwpropid),
27431 )
27432 .into()
27433 }
27434 }
27435 unsafe extern "system" fn GetPropertyName<
27436 Identity: IMimePropertySchema_Impl,
27437 const OFFSET: isize,
27438 >(
27439 this: *mut core::ffi::c_void,
27440 dwpropid: u32,
27441 ppszname: *mut windows_core::PSTR,
27442 ) -> windows_core::HRESULT {
27443 unsafe {
27444 let this: &Identity =
27445 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27446 IMimePropertySchema_Impl::GetPropertyName(
27447 this,
27448 core::mem::transmute_copy(&dwpropid),
27449 core::mem::transmute_copy(&ppszname),
27450 )
27451 .into()
27452 }
27453 }
27454 unsafe extern "system" fn RegisterAddressType<
27455 Identity: IMimePropertySchema_Impl,
27456 const OFFSET: isize,
27457 >(
27458 this: *mut core::ffi::c_void,
27459 pszname: windows_core::PCSTR,
27460 pdwadrtype: *mut u32,
27461 ) -> windows_core::HRESULT {
27462 unsafe {
27463 let this: &Identity =
27464 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27465 IMimePropertySchema_Impl::RegisterAddressType(
27466 this,
27467 core::mem::transmute(&pszname),
27468 core::mem::transmute_copy(&pdwadrtype),
27469 )
27470 .into()
27471 }
27472 }
27473 Self {
27474 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27475 RegisterProperty: RegisterProperty::<Identity, OFFSET>,
27476 ModifyProperty: ModifyProperty::<Identity, OFFSET>,
27477 GetPropertyId: GetPropertyId::<Identity, OFFSET>,
27478 GetPropertyName: GetPropertyName::<Identity, OFFSET>,
27479 RegisterAddressType: RegisterAddressType::<Identity, OFFSET>,
27480 }
27481 }
27482 pub fn matches(iid: &windows_core::GUID) -> bool {
27483 iid == &<IMimePropertySchema as windows_core::Interface>::IID
27484 }
27485}
27486impl windows_core::RuntimeName for IMimePropertySchema {}
27487windows_core::imp::define_interface!(
27488 IMimePropertySet,
27489 IMimePropertySet_Vtbl,
27490 0xfd853cd3_7f86_11d0_8252_00c04fd85ab4
27491);
27492impl core::ops::Deref for IMimePropertySet {
27493 type Target = windows::Win32::System::Com::IPersistStreamInit;
27494 fn deref(&self) -> &Self::Target {
27495 unsafe { core::mem::transmute(self) }
27496 }
27497}
27498windows_core::imp::interface_hierarchy!(
27499 IMimePropertySet,
27500 windows_core::IUnknown,
27501 windows::Win32::System::Com::IPersist,
27502 windows::Win32::System::Com::IPersistStreamInit
27503);
27504impl IMimePropertySet {
27505 pub unsafe fn Save<P0>(&self, pstm: P0, fcleardirty: bool) -> windows_core::Result<()>
27506 where
27507 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
27508 {
27509 unsafe {
27510 (windows_core::Interface::vtable(self).Save)(
27511 windows_core::Interface::as_raw(self),
27512 pstm.param().abi(),
27513 fcleardirty.into(),
27514 )
27515 .ok()
27516 }
27517 }
27518 pub unsafe fn GetSizeMax(&self) -> windows_core::Result<u64> {
27519 unsafe {
27520 let mut result__ = core::mem::zeroed();
27521 (windows_core::Interface::vtable(self).GetSizeMax)(
27522 windows_core::Interface::as_raw(self),
27523 &mut result__,
27524 )
27525 .map(|| result__)
27526 }
27527 }
27528 pub unsafe fn InitNew(&self) -> windows_core::Result<()> {
27529 unsafe {
27530 (windows_core::Interface::vtable(self).InitNew)(windows_core::Interface::as_raw(self))
27531 .ok()
27532 }
27533 }
27534 pub unsafe fn GetPropInfo<P0>(
27535 &self,
27536 pszname: P0,
27537 pinfo: *mut MIMEPROPINFO,
27538 ) -> windows_core::Result<()>
27539 where
27540 P0: windows_core::Param<windows_core::PCSTR>,
27541 {
27542 unsafe {
27543 (windows_core::Interface::vtable(self).GetPropInfo)(
27544 windows_core::Interface::as_raw(self),
27545 pszname.param().abi(),
27546 pinfo as _,
27547 )
27548 .ok()
27549 }
27550 }
27551 pub unsafe fn SetPropInfo<P0>(
27552 &self,
27553 pszname: P0,
27554 pinfo: *mut MIMEPROPINFO,
27555 ) -> windows_core::Result<()>
27556 where
27557 P0: windows_core::Param<windows_core::PCSTR>,
27558 {
27559 unsafe {
27560 (windows_core::Interface::vtable(self).SetPropInfo)(
27561 windows_core::Interface::as_raw(self),
27562 pszname.param().abi(),
27563 pinfo as _,
27564 )
27565 .ok()
27566 }
27567 }
27568 pub unsafe fn GetPropA<P0>(
27569 &self,
27570 pszname: P0,
27571 dwflags: u32,
27572 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27573 ) -> windows_core::Result<()>
27574 where
27575 P0: windows_core::Param<windows_core::PCSTR>,
27576 {
27577 unsafe {
27578 (windows_core::Interface::vtable(self).GetPropA)(
27579 windows_core::Interface::as_raw(self),
27580 pszname.param().abi(),
27581 dwflags,
27582 core::mem::transmute(pvalue),
27583 )
27584 .ok()
27585 }
27586 }
27587 pub unsafe fn SetPropA<P0>(
27588 &self,
27589 pszname: P0,
27590 dwflags: u32,
27591 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27592 ) -> windows_core::Result<()>
27593 where
27594 P0: windows_core::Param<windows_core::PCSTR>,
27595 {
27596 unsafe {
27597 (windows_core::Interface::vtable(self).SetPropA)(
27598 windows_core::Interface::as_raw(self),
27599 pszname.param().abi(),
27600 dwflags,
27601 core::mem::transmute(pvalue),
27602 )
27603 .ok()
27604 }
27605 }
27606 pub unsafe fn AppendProp<P0>(
27607 &self,
27608 pszname: P0,
27609 dwflags: u32,
27610 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27611 ) -> windows_core::Result<()>
27612 where
27613 P0: windows_core::Param<windows_core::PCSTR>,
27614 {
27615 unsafe {
27616 (windows_core::Interface::vtable(self).AppendProp)(
27617 windows_core::Interface::as_raw(self),
27618 pszname.param().abi(),
27619 dwflags,
27620 core::mem::transmute(pvalue),
27621 )
27622 .ok()
27623 }
27624 }
27625 pub unsafe fn DeleteProp<P0>(&self, pszname: P0) -> windows_core::Result<()>
27626 where
27627 P0: windows_core::Param<windows_core::PCSTR>,
27628 {
27629 unsafe {
27630 (windows_core::Interface::vtable(self).DeleteProp)(
27631 windows_core::Interface::as_raw(self),
27632 pszname.param().abi(),
27633 )
27634 .ok()
27635 }
27636 }
27637 pub unsafe fn CopyProps<P2>(
27638 &self,
27639 cnames: u32,
27640 prgszname: *const windows_core::PCSTR,
27641 ppropertyset: P2,
27642 ) -> windows_core::Result<()>
27643 where
27644 P2: windows_core::Param<IMimePropertySet>,
27645 {
27646 unsafe {
27647 (windows_core::Interface::vtable(self).CopyProps)(
27648 windows_core::Interface::as_raw(self),
27649 cnames,
27650 prgszname,
27651 ppropertyset.param().abi(),
27652 )
27653 .ok()
27654 }
27655 }
27656 pub unsafe fn MoveProps<P2>(
27657 &self,
27658 cnames: u32,
27659 prgszname: *const windows_core::PCSTR,
27660 ppropertyset: P2,
27661 ) -> windows_core::Result<()>
27662 where
27663 P2: windows_core::Param<IMimePropertySet>,
27664 {
27665 unsafe {
27666 (windows_core::Interface::vtable(self).MoveProps)(
27667 windows_core::Interface::as_raw(self),
27668 cnames,
27669 prgszname,
27670 ppropertyset.param().abi(),
27671 )
27672 .ok()
27673 }
27674 }
27675 pub unsafe fn DeleteExcept(
27676 &self,
27677 cnames: u32,
27678 prgszname: *const windows_core::PCSTR,
27679 ) -> windows_core::Result<()> {
27680 unsafe {
27681 (windows_core::Interface::vtable(self).DeleteExcept)(
27682 windows_core::Interface::as_raw(self),
27683 cnames,
27684 prgszname,
27685 )
27686 .ok()
27687 }
27688 }
27689 pub unsafe fn QueryProp<P0, P1>(
27690 &self,
27691 pszname: P0,
27692 pszcriteria: P1,
27693 fsubstring: u8,
27694 fcasesensitive: u8,
27695 ) -> windows_core::Result<()>
27696 where
27697 P0: windows_core::Param<windows_core::PCSTR>,
27698 P1: windows_core::Param<windows_core::PCSTR>,
27699 {
27700 unsafe {
27701 (windows_core::Interface::vtable(self).QueryProp)(
27702 windows_core::Interface::as_raw(self),
27703 pszname.param().abi(),
27704 pszcriteria.param().abi(),
27705 fsubstring,
27706 fcasesensitive,
27707 )
27708 .ok()
27709 }
27710 }
27711 pub unsafe fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()> {
27712 unsafe {
27713 (windows_core::Interface::vtable(self).GetCharset)(
27714 windows_core::Interface::as_raw(self),
27715 phcharset as _,
27716 )
27717 .ok()
27718 }
27719 }
27720 pub unsafe fn SetCharset(
27721 &self,
27722 hcharset: *mut HCHARSET__,
27723 applytype: CSETAPPLYTYPE,
27724 ) -> windows_core::Result<()> {
27725 unsafe {
27726 (windows_core::Interface::vtable(self).SetCharset)(
27727 windows_core::Interface::as_raw(self),
27728 hcharset as _,
27729 applytype,
27730 )
27731 .ok()
27732 }
27733 }
27734 pub unsafe fn GetParameters<P0>(
27735 &self,
27736 pszname: P0,
27737 pcparams: *mut u32,
27738 pprgparam: *mut *mut MIMEPARAMINFO,
27739 ) -> windows_core::Result<()>
27740 where
27741 P0: windows_core::Param<windows_core::PCSTR>,
27742 {
27743 unsafe {
27744 (windows_core::Interface::vtable(self).GetParameters)(
27745 windows_core::Interface::as_raw(self),
27746 pszname.param().abi(),
27747 pcparams as _,
27748 pprgparam as _,
27749 )
27750 .ok()
27751 }
27752 }
27753 pub unsafe fn IsContentType<P0, P1>(
27754 &self,
27755 pszpritype: P0,
27756 pszsubtype: P1,
27757 ) -> windows_core::Result<()>
27758 where
27759 P0: windows_core::Param<windows_core::PCSTR>,
27760 P1: windows_core::Param<windows_core::PCSTR>,
27761 {
27762 unsafe {
27763 (windows_core::Interface::vtable(self).IsContentType)(
27764 windows_core::Interface::as_raw(self),
27765 pszpritype.param().abi(),
27766 pszsubtype.param().abi(),
27767 )
27768 .ok()
27769 }
27770 }
27771 pub unsafe fn BindToObject(
27772 &self,
27773 riid: *const windows_core::GUID,
27774 ppvobject: *mut *mut core::ffi::c_void,
27775 ) -> windows_core::Result<()> {
27776 unsafe {
27777 (windows_core::Interface::vtable(self).BindToObject)(
27778 windows_core::Interface::as_raw(self),
27779 riid,
27780 ppvobject as _,
27781 )
27782 .ok()
27783 }
27784 }
27785 pub unsafe fn Clone(&self) -> windows_core::Result<IMimePropertySet> {
27786 unsafe {
27787 let mut result__ = core::mem::zeroed();
27788 (windows_core::Interface::vtable(self).Clone)(
27789 windows_core::Interface::as_raw(self),
27790 &mut result__,
27791 )
27792 .and_then(|| windows_core::Type::from_abi(result__))
27793 }
27794 }
27795 pub unsafe fn SetOption(
27796 &self,
27797 oid: u32,
27798 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27799 ) -> windows_core::Result<()> {
27800 unsafe {
27801 (windows_core::Interface::vtable(self).SetOption)(
27802 windows_core::Interface::as_raw(self),
27803 oid,
27804 core::mem::transmute(pvalue),
27805 )
27806 .ok()
27807 }
27808 }
27809 pub unsafe fn GetOption(
27810 &self,
27811 oid: u32,
27812 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27813 ) -> windows_core::Result<()> {
27814 unsafe {
27815 (windows_core::Interface::vtable(self).GetOption)(
27816 windows_core::Interface::as_raw(self),
27817 oid,
27818 core::mem::transmute(pvalue),
27819 )
27820 .ok()
27821 }
27822 }
27823 pub unsafe fn EnumPropsA(&self, dwflags: u32) -> windows_core::Result<IMimeEnumProperties> {
27824 unsafe {
27825 let mut result__ = core::mem::zeroed();
27826 (windows_core::Interface::vtable(self).EnumPropsA)(
27827 windows_core::Interface::as_raw(self),
27828 dwflags,
27829 &mut result__,
27830 )
27831 .and_then(|| windows_core::Type::from_abi(result__))
27832 }
27833 }
27834}
27835#[repr(C)]
27836pub struct IMimePropertySet_Vtbl {
27837 pub base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl,
27838 pub Save: unsafe extern "system" fn(
27839 *mut core::ffi::c_void,
27840 *mut core::ffi::c_void,
27841 windows_core::BOOL,
27842 ) -> windows_core::HRESULT,
27843 pub GetSizeMax:
27844 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
27845 pub InitNew: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
27846 pub GetPropInfo: unsafe extern "system" fn(
27847 *mut core::ffi::c_void,
27848 windows_core::PCSTR,
27849 *mut MIMEPROPINFO,
27850 ) -> windows_core::HRESULT,
27851 pub SetPropInfo: unsafe extern "system" fn(
27852 *mut core::ffi::c_void,
27853 windows_core::PCSTR,
27854 *mut MIMEPROPINFO,
27855 ) -> windows_core::HRESULT,
27856 pub GetPropA: unsafe extern "system" fn(
27857 *mut core::ffi::c_void,
27858 windows_core::PCSTR,
27859 u32,
27860 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27861 ) -> windows_core::HRESULT,
27862 pub SetPropA: unsafe extern "system" fn(
27863 *mut core::ffi::c_void,
27864 windows_core::PCSTR,
27865 u32,
27866 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27867 ) -> windows_core::HRESULT,
27868 pub AppendProp: unsafe extern "system" fn(
27869 *mut core::ffi::c_void,
27870 windows_core::PCSTR,
27871 u32,
27872 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27873 ) -> windows_core::HRESULT,
27874 pub DeleteProp: unsafe extern "system" fn(
27875 *mut core::ffi::c_void,
27876 windows_core::PCSTR,
27877 ) -> windows_core::HRESULT,
27878 pub CopyProps: unsafe extern "system" fn(
27879 *mut core::ffi::c_void,
27880 u32,
27881 *const windows_core::PCSTR,
27882 *mut core::ffi::c_void,
27883 ) -> windows_core::HRESULT,
27884 pub MoveProps: unsafe extern "system" fn(
27885 *mut core::ffi::c_void,
27886 u32,
27887 *const windows_core::PCSTR,
27888 *mut core::ffi::c_void,
27889 ) -> windows_core::HRESULT,
27890 pub DeleteExcept: unsafe extern "system" fn(
27891 *mut core::ffi::c_void,
27892 u32,
27893 *const windows_core::PCSTR,
27894 ) -> windows_core::HRESULT,
27895 pub QueryProp: unsafe extern "system" fn(
27896 *mut core::ffi::c_void,
27897 windows_core::PCSTR,
27898 windows_core::PCSTR,
27899 u8,
27900 u8,
27901 ) -> windows_core::HRESULT,
27902 pub GetCharset: unsafe extern "system" fn(
27903 *mut core::ffi::c_void,
27904 *mut *mut HCHARSET__,
27905 ) -> windows_core::HRESULT,
27906 pub SetCharset: unsafe extern "system" fn(
27907 *mut core::ffi::c_void,
27908 *mut HCHARSET__,
27909 CSETAPPLYTYPE,
27910 ) -> windows_core::HRESULT,
27911 pub GetParameters: unsafe extern "system" fn(
27912 *mut core::ffi::c_void,
27913 windows_core::PCSTR,
27914 *mut u32,
27915 *mut *mut MIMEPARAMINFO,
27916 ) -> windows_core::HRESULT,
27917 pub IsContentType: unsafe extern "system" fn(
27918 *mut core::ffi::c_void,
27919 windows_core::PCSTR,
27920 windows_core::PCSTR,
27921 ) -> windows_core::HRESULT,
27922 pub BindToObject: unsafe extern "system" fn(
27923 *mut core::ffi::c_void,
27924 *const windows_core::GUID,
27925 *mut *mut core::ffi::c_void,
27926 ) -> windows_core::HRESULT,
27927 pub Clone: unsafe extern "system" fn(
27928 *mut core::ffi::c_void,
27929 *mut *mut core::ffi::c_void,
27930 ) -> windows_core::HRESULT,
27931 pub SetOption: unsafe extern "system" fn(
27932 *mut core::ffi::c_void,
27933 u32,
27934 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27935 ) -> windows_core::HRESULT,
27936 pub GetOption: unsafe extern "system" fn(
27937 *mut core::ffi::c_void,
27938 u32,
27939 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27940 ) -> windows_core::HRESULT,
27941 pub EnumPropsA: unsafe extern "system" fn(
27942 *mut core::ffi::c_void,
27943 u32,
27944 *mut *mut core::ffi::c_void,
27945 ) -> windows_core::HRESULT,
27946}
27947pub trait IMimePropertySet_Impl: windows::Win32::System::Com::IPersistStreamInit_Impl {
27948 fn Save(
27949 &self,
27950 pstm: windows_core::Ref<'_, windows::Win32::System::Com::IStream>,
27951 fcleardirty: windows_core::BOOL,
27952 ) -> windows_core::Result<()>;
27953 fn GetSizeMax(&self) -> windows_core::Result<u64>;
27954 fn InitNew(&self) -> windows_core::Result<()>;
27955 fn GetPropInfo(
27956 &self,
27957 pszname: &windows_core::PCSTR,
27958 pinfo: *mut MIMEPROPINFO,
27959 ) -> windows_core::Result<()>;
27960 fn SetPropInfo(
27961 &self,
27962 pszname: &windows_core::PCSTR,
27963 pinfo: *mut MIMEPROPINFO,
27964 ) -> windows_core::Result<()>;
27965 fn GetPropA(
27966 &self,
27967 pszname: &windows_core::PCSTR,
27968 dwflags: u32,
27969 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27970 ) -> windows_core::Result<()>;
27971 fn SetPropA(
27972 &self,
27973 pszname: &windows_core::PCSTR,
27974 dwflags: u32,
27975 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27976 ) -> windows_core::Result<()>;
27977 fn AppendProp(
27978 &self,
27979 pszname: &windows_core::PCSTR,
27980 dwflags: u32,
27981 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27982 ) -> windows_core::Result<()>;
27983 fn DeleteProp(&self, pszname: &windows_core::PCSTR) -> windows_core::Result<()>;
27984 fn CopyProps(
27985 &self,
27986 cnames: u32,
27987 prgszname: *const windows_core::PCSTR,
27988 ppropertyset: windows_core::Ref<'_, IMimePropertySet>,
27989 ) -> windows_core::Result<()>;
27990 fn MoveProps(
27991 &self,
27992 cnames: u32,
27993 prgszname: *const windows_core::PCSTR,
27994 ppropertyset: windows_core::Ref<'_, IMimePropertySet>,
27995 ) -> windows_core::Result<()>;
27996 fn DeleteExcept(
27997 &self,
27998 cnames: u32,
27999 prgszname: *const windows_core::PCSTR,
28000 ) -> windows_core::Result<()>;
28001 fn QueryProp(
28002 &self,
28003 pszname: &windows_core::PCSTR,
28004 pszcriteria: &windows_core::PCSTR,
28005 fsubstring: u8,
28006 fcasesensitive: u8,
28007 ) -> windows_core::Result<()>;
28008 fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()>;
28009 fn SetCharset(
28010 &self,
28011 hcharset: *mut HCHARSET__,
28012 applytype: CSETAPPLYTYPE,
28013 ) -> windows_core::Result<()>;
28014 fn GetParameters(
28015 &self,
28016 pszname: &windows_core::PCSTR,
28017 pcparams: *mut u32,
28018 pprgparam: *mut *mut MIMEPARAMINFO,
28019 ) -> windows_core::Result<()>;
28020 fn IsContentType(
28021 &self,
28022 pszpritype: &windows_core::PCSTR,
28023 pszsubtype: &windows_core::PCSTR,
28024 ) -> windows_core::Result<()>;
28025 fn BindToObject(
28026 &self,
28027 riid: *const windows_core::GUID,
28028 ppvobject: *mut *mut core::ffi::c_void,
28029 ) -> windows_core::Result<()>;
28030 fn Clone(&self) -> windows_core::Result<IMimePropertySet>;
28031 fn SetOption(
28032 &self,
28033 oid: u32,
28034 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28035 ) -> windows_core::Result<()>;
28036 fn GetOption(
28037 &self,
28038 oid: u32,
28039 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28040 ) -> windows_core::Result<()>;
28041 fn EnumPropsA(&self, dwflags: u32) -> windows_core::Result<IMimeEnumProperties>;
28042}
28043impl IMimePropertySet_Vtbl {
28044 pub const fn new<Identity: IMimePropertySet_Impl, const OFFSET: isize>() -> Self {
28045 unsafe extern "system" fn Save<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28046 this: *mut core::ffi::c_void,
28047 pstm: *mut core::ffi::c_void,
28048 fcleardirty: windows_core::BOOL,
28049 ) -> windows_core::HRESULT {
28050 unsafe {
28051 let this: &Identity =
28052 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28053 IMimePropertySet_Impl::Save(
28054 this,
28055 core::mem::transmute_copy(&pstm),
28056 core::mem::transmute_copy(&fcleardirty),
28057 )
28058 .into()
28059 }
28060 }
28061 unsafe extern "system" fn GetSizeMax<
28062 Identity: IMimePropertySet_Impl,
28063 const OFFSET: isize,
28064 >(
28065 this: *mut core::ffi::c_void,
28066 pcbsize: *mut u64,
28067 ) -> windows_core::HRESULT {
28068 unsafe {
28069 let this: &Identity =
28070 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28071 match IMimePropertySet_Impl::GetSizeMax(this) {
28072 Ok(ok__) => {
28073 pcbsize.write(core::mem::transmute(ok__));
28074 windows_core::HRESULT(0)
28075 }
28076 Err(err) => err.into(),
28077 }
28078 }
28079 }
28080 unsafe extern "system" fn InitNew<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28081 this: *mut core::ffi::c_void,
28082 ) -> windows_core::HRESULT {
28083 unsafe {
28084 let this: &Identity =
28085 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28086 IMimePropertySet_Impl::InitNew(this).into()
28087 }
28088 }
28089 unsafe extern "system" fn GetPropInfo<
28090 Identity: IMimePropertySet_Impl,
28091 const OFFSET: isize,
28092 >(
28093 this: *mut core::ffi::c_void,
28094 pszname: windows_core::PCSTR,
28095 pinfo: *mut MIMEPROPINFO,
28096 ) -> windows_core::HRESULT {
28097 unsafe {
28098 let this: &Identity =
28099 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28100 IMimePropertySet_Impl::GetPropInfo(
28101 this,
28102 core::mem::transmute(&pszname),
28103 core::mem::transmute_copy(&pinfo),
28104 )
28105 .into()
28106 }
28107 }
28108 unsafe extern "system" fn SetPropInfo<
28109 Identity: IMimePropertySet_Impl,
28110 const OFFSET: isize,
28111 >(
28112 this: *mut core::ffi::c_void,
28113 pszname: windows_core::PCSTR,
28114 pinfo: *mut MIMEPROPINFO,
28115 ) -> windows_core::HRESULT {
28116 unsafe {
28117 let this: &Identity =
28118 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28119 IMimePropertySet_Impl::SetPropInfo(
28120 this,
28121 core::mem::transmute(&pszname),
28122 core::mem::transmute_copy(&pinfo),
28123 )
28124 .into()
28125 }
28126 }
28127 unsafe extern "system" fn GetPropA<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28128 this: *mut core::ffi::c_void,
28129 pszname: windows_core::PCSTR,
28130 dwflags: u32,
28131 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28132 ) -> windows_core::HRESULT {
28133 unsafe {
28134 let this: &Identity =
28135 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28136 IMimePropertySet_Impl::GetPropA(
28137 this,
28138 core::mem::transmute(&pszname),
28139 core::mem::transmute_copy(&dwflags),
28140 core::mem::transmute_copy(&pvalue),
28141 )
28142 .into()
28143 }
28144 }
28145 unsafe extern "system" fn SetPropA<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28146 this: *mut core::ffi::c_void,
28147 pszname: windows_core::PCSTR,
28148 dwflags: u32,
28149 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28150 ) -> windows_core::HRESULT {
28151 unsafe {
28152 let this: &Identity =
28153 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28154 IMimePropertySet_Impl::SetPropA(
28155 this,
28156 core::mem::transmute(&pszname),
28157 core::mem::transmute_copy(&dwflags),
28158 core::mem::transmute_copy(&pvalue),
28159 )
28160 .into()
28161 }
28162 }
28163 unsafe extern "system" fn AppendProp<
28164 Identity: IMimePropertySet_Impl,
28165 const OFFSET: isize,
28166 >(
28167 this: *mut core::ffi::c_void,
28168 pszname: windows_core::PCSTR,
28169 dwflags: u32,
28170 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28171 ) -> windows_core::HRESULT {
28172 unsafe {
28173 let this: &Identity =
28174 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28175 IMimePropertySet_Impl::AppendProp(
28176 this,
28177 core::mem::transmute(&pszname),
28178 core::mem::transmute_copy(&dwflags),
28179 core::mem::transmute_copy(&pvalue),
28180 )
28181 .into()
28182 }
28183 }
28184 unsafe extern "system" fn DeleteProp<
28185 Identity: IMimePropertySet_Impl,
28186 const OFFSET: isize,
28187 >(
28188 this: *mut core::ffi::c_void,
28189 pszname: windows_core::PCSTR,
28190 ) -> windows_core::HRESULT {
28191 unsafe {
28192 let this: &Identity =
28193 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28194 IMimePropertySet_Impl::DeleteProp(this, core::mem::transmute(&pszname)).into()
28195 }
28196 }
28197 unsafe extern "system" fn CopyProps<
28198 Identity: IMimePropertySet_Impl,
28199 const OFFSET: isize,
28200 >(
28201 this: *mut core::ffi::c_void,
28202 cnames: u32,
28203 prgszname: *const windows_core::PCSTR,
28204 ppropertyset: *mut core::ffi::c_void,
28205 ) -> windows_core::HRESULT {
28206 unsafe {
28207 let this: &Identity =
28208 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28209 IMimePropertySet_Impl::CopyProps(
28210 this,
28211 core::mem::transmute_copy(&cnames),
28212 core::mem::transmute_copy(&prgszname),
28213 core::mem::transmute_copy(&ppropertyset),
28214 )
28215 .into()
28216 }
28217 }
28218 unsafe extern "system" fn MoveProps<
28219 Identity: IMimePropertySet_Impl,
28220 const OFFSET: isize,
28221 >(
28222 this: *mut core::ffi::c_void,
28223 cnames: u32,
28224 prgszname: *const windows_core::PCSTR,
28225 ppropertyset: *mut core::ffi::c_void,
28226 ) -> windows_core::HRESULT {
28227 unsafe {
28228 let this: &Identity =
28229 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28230 IMimePropertySet_Impl::MoveProps(
28231 this,
28232 core::mem::transmute_copy(&cnames),
28233 core::mem::transmute_copy(&prgszname),
28234 core::mem::transmute_copy(&ppropertyset),
28235 )
28236 .into()
28237 }
28238 }
28239 unsafe extern "system" fn DeleteExcept<
28240 Identity: IMimePropertySet_Impl,
28241 const OFFSET: isize,
28242 >(
28243 this: *mut core::ffi::c_void,
28244 cnames: u32,
28245 prgszname: *const windows_core::PCSTR,
28246 ) -> windows_core::HRESULT {
28247 unsafe {
28248 let this: &Identity =
28249 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28250 IMimePropertySet_Impl::DeleteExcept(
28251 this,
28252 core::mem::transmute_copy(&cnames),
28253 core::mem::transmute_copy(&prgszname),
28254 )
28255 .into()
28256 }
28257 }
28258 unsafe extern "system" fn QueryProp<
28259 Identity: IMimePropertySet_Impl,
28260 const OFFSET: isize,
28261 >(
28262 this: *mut core::ffi::c_void,
28263 pszname: windows_core::PCSTR,
28264 pszcriteria: windows_core::PCSTR,
28265 fsubstring: u8,
28266 fcasesensitive: u8,
28267 ) -> windows_core::HRESULT {
28268 unsafe {
28269 let this: &Identity =
28270 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28271 IMimePropertySet_Impl::QueryProp(
28272 this,
28273 core::mem::transmute(&pszname),
28274 core::mem::transmute(&pszcriteria),
28275 core::mem::transmute_copy(&fsubstring),
28276 core::mem::transmute_copy(&fcasesensitive),
28277 )
28278 .into()
28279 }
28280 }
28281 unsafe extern "system" fn GetCharset<
28282 Identity: IMimePropertySet_Impl,
28283 const OFFSET: isize,
28284 >(
28285 this: *mut core::ffi::c_void,
28286 phcharset: *mut *mut HCHARSET__,
28287 ) -> windows_core::HRESULT {
28288 unsafe {
28289 let this: &Identity =
28290 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28291 IMimePropertySet_Impl::GetCharset(this, core::mem::transmute_copy(&phcharset))
28292 .into()
28293 }
28294 }
28295 unsafe extern "system" fn SetCharset<
28296 Identity: IMimePropertySet_Impl,
28297 const OFFSET: isize,
28298 >(
28299 this: *mut core::ffi::c_void,
28300 hcharset: *mut HCHARSET__,
28301 applytype: CSETAPPLYTYPE,
28302 ) -> windows_core::HRESULT {
28303 unsafe {
28304 let this: &Identity =
28305 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28306 IMimePropertySet_Impl::SetCharset(
28307 this,
28308 core::mem::transmute_copy(&hcharset),
28309 core::mem::transmute_copy(&applytype),
28310 )
28311 .into()
28312 }
28313 }
28314 unsafe extern "system" fn GetParameters<
28315 Identity: IMimePropertySet_Impl,
28316 const OFFSET: isize,
28317 >(
28318 this: *mut core::ffi::c_void,
28319 pszname: windows_core::PCSTR,
28320 pcparams: *mut u32,
28321 pprgparam: *mut *mut MIMEPARAMINFO,
28322 ) -> windows_core::HRESULT {
28323 unsafe {
28324 let this: &Identity =
28325 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28326 IMimePropertySet_Impl::GetParameters(
28327 this,
28328 core::mem::transmute(&pszname),
28329 core::mem::transmute_copy(&pcparams),
28330 core::mem::transmute_copy(&pprgparam),
28331 )
28332 .into()
28333 }
28334 }
28335 unsafe extern "system" fn IsContentType<
28336 Identity: IMimePropertySet_Impl,
28337 const OFFSET: isize,
28338 >(
28339 this: *mut core::ffi::c_void,
28340 pszpritype: windows_core::PCSTR,
28341 pszsubtype: windows_core::PCSTR,
28342 ) -> windows_core::HRESULT {
28343 unsafe {
28344 let this: &Identity =
28345 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28346 IMimePropertySet_Impl::IsContentType(
28347 this,
28348 core::mem::transmute(&pszpritype),
28349 core::mem::transmute(&pszsubtype),
28350 )
28351 .into()
28352 }
28353 }
28354 unsafe extern "system" fn BindToObject<
28355 Identity: IMimePropertySet_Impl,
28356 const OFFSET: isize,
28357 >(
28358 this: *mut core::ffi::c_void,
28359 riid: *const windows_core::GUID,
28360 ppvobject: *mut *mut core::ffi::c_void,
28361 ) -> windows_core::HRESULT {
28362 unsafe {
28363 let this: &Identity =
28364 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28365 IMimePropertySet_Impl::BindToObject(
28366 this,
28367 core::mem::transmute_copy(&riid),
28368 core::mem::transmute_copy(&ppvobject),
28369 )
28370 .into()
28371 }
28372 }
28373 unsafe extern "system" fn Clone<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28374 this: *mut core::ffi::c_void,
28375 pppropertyset: *mut *mut core::ffi::c_void,
28376 ) -> windows_core::HRESULT {
28377 unsafe {
28378 let this: &Identity =
28379 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28380 match IMimePropertySet_Impl::Clone(this) {
28381 Ok(ok__) => {
28382 pppropertyset.write(core::mem::transmute(ok__));
28383 windows_core::HRESULT(0)
28384 }
28385 Err(err) => err.into(),
28386 }
28387 }
28388 }
28389 unsafe extern "system" fn SetOption<
28390 Identity: IMimePropertySet_Impl,
28391 const OFFSET: isize,
28392 >(
28393 this: *mut core::ffi::c_void,
28394 oid: u32,
28395 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28396 ) -> windows_core::HRESULT {
28397 unsafe {
28398 let this: &Identity =
28399 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28400 IMimePropertySet_Impl::SetOption(
28401 this,
28402 core::mem::transmute_copy(&oid),
28403 core::mem::transmute_copy(&pvalue),
28404 )
28405 .into()
28406 }
28407 }
28408 unsafe extern "system" fn GetOption<
28409 Identity: IMimePropertySet_Impl,
28410 const OFFSET: isize,
28411 >(
28412 this: *mut core::ffi::c_void,
28413 oid: u32,
28414 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28415 ) -> windows_core::HRESULT {
28416 unsafe {
28417 let this: &Identity =
28418 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28419 IMimePropertySet_Impl::GetOption(
28420 this,
28421 core::mem::transmute_copy(&oid),
28422 core::mem::transmute_copy(&pvalue),
28423 )
28424 .into()
28425 }
28426 }
28427 unsafe extern "system" fn EnumPropsA<
28428 Identity: IMimePropertySet_Impl,
28429 const OFFSET: isize,
28430 >(
28431 this: *mut core::ffi::c_void,
28432 dwflags: u32,
28433 ppenum: *mut *mut core::ffi::c_void,
28434 ) -> windows_core::HRESULT {
28435 unsafe {
28436 let this: &Identity =
28437 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28438 match IMimePropertySet_Impl::EnumPropsA(this, core::mem::transmute_copy(&dwflags)) {
28439 Ok(ok__) => {
28440 ppenum.write(core::mem::transmute(ok__));
28441 windows_core::HRESULT(0)
28442 }
28443 Err(err) => err.into(),
28444 }
28445 }
28446 }
28447 Self {
28448 base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl::new::<Identity, OFFSET>(),
28449 Save: Save::<Identity, OFFSET>,
28450 GetSizeMax: GetSizeMax::<Identity, OFFSET>,
28451 InitNew: InitNew::<Identity, OFFSET>,
28452 GetPropInfo: GetPropInfo::<Identity, OFFSET>,
28453 SetPropInfo: SetPropInfo::<Identity, OFFSET>,
28454 GetPropA: GetPropA::<Identity, OFFSET>,
28455 SetPropA: SetPropA::<Identity, OFFSET>,
28456 AppendProp: AppendProp::<Identity, OFFSET>,
28457 DeleteProp: DeleteProp::<Identity, OFFSET>,
28458 CopyProps: CopyProps::<Identity, OFFSET>,
28459 MoveProps: MoveProps::<Identity, OFFSET>,
28460 DeleteExcept: DeleteExcept::<Identity, OFFSET>,
28461 QueryProp: QueryProp::<Identity, OFFSET>,
28462 GetCharset: GetCharset::<Identity, OFFSET>,
28463 SetCharset: SetCharset::<Identity, OFFSET>,
28464 GetParameters: GetParameters::<Identity, OFFSET>,
28465 IsContentType: IsContentType::<Identity, OFFSET>,
28466 BindToObject: BindToObject::<Identity, OFFSET>,
28467 Clone: Clone::<Identity, OFFSET>,
28468 SetOption: SetOption::<Identity, OFFSET>,
28469 GetOption: GetOption::<Identity, OFFSET>,
28470 EnumPropsA: EnumPropsA::<Identity, OFFSET>,
28471 }
28472 }
28473 pub fn matches(iid: &windows_core::GUID) -> bool {
28474 iid == & < IMimePropertySet as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersist as windows_core::Interface >::IID || iid == & < windows::Win32::System::Com:: IPersistStreamInit as windows_core::Interface >::IID
28475 }
28476}
28477impl windows_core::RuntimeName for IMimePropertySet {}
28478windows_core::imp::define_interface!(
28479 IMimeSecurity,
28480 IMimeSecurity_Vtbl,
28481 0xc5588353_7f86_11d0_8252_00c04fd85ab4
28482);
28483windows_core::imp::interface_hierarchy!(IMimeSecurity, windows_core::IUnknown);
28484impl IMimeSecurity {
28485 pub unsafe fn InitNew(&self) -> windows_core::Result<()> {
28486 unsafe {
28487 (windows_core::Interface::vtable(self).InitNew)(windows_core::Interface::as_raw(self))
28488 .ok()
28489 }
28490 }
28491 pub unsafe fn CheckInit(&self) -> windows_core::Result<()> {
28492 unsafe {
28493 (windows_core::Interface::vtable(self).CheckInit)(windows_core::Interface::as_raw(self))
28494 .ok()
28495 }
28496 }
28497 pub unsafe fn EncodeMessage<P0>(&self, ptree: P0, dwflags: u32) -> windows_core::Result<()>
28498 where
28499 P0: windows_core::Param<IMimeMessageTree>,
28500 {
28501 unsafe {
28502 (windows_core::Interface::vtable(self).EncodeMessage)(
28503 windows_core::Interface::as_raw(self),
28504 ptree.param().abi(),
28505 dwflags,
28506 )
28507 .ok()
28508 }
28509 }
28510 pub unsafe fn EncodeBody<P0>(
28511 &self,
28512 ptree: P0,
28513 hencoderoot: *mut HBODY__,
28514 dwflags: u32,
28515 ) -> windows_core::Result<()>
28516 where
28517 P0: windows_core::Param<IMimeMessageTree>,
28518 {
28519 unsafe {
28520 (windows_core::Interface::vtable(self).EncodeBody)(
28521 windows_core::Interface::as_raw(self),
28522 ptree.param().abi(),
28523 hencoderoot as _,
28524 dwflags,
28525 )
28526 .ok()
28527 }
28528 }
28529 pub unsafe fn DecodeMessage<P0>(&self, ptree: P0, dwflags: u32) -> windows_core::Result<()>
28530 where
28531 P0: windows_core::Param<IMimeMessageTree>,
28532 {
28533 unsafe {
28534 (windows_core::Interface::vtable(self).DecodeMessage)(
28535 windows_core::Interface::as_raw(self),
28536 ptree.param().abi(),
28537 dwflags,
28538 )
28539 .ok()
28540 }
28541 }
28542 pub unsafe fn DecodeBody<P0>(
28543 &self,
28544 ptree: P0,
28545 hdecoderoot: *mut HBODY__,
28546 dwflags: u32,
28547 ) -> windows_core::Result<()>
28548 where
28549 P0: windows_core::Param<IMimeMessageTree>,
28550 {
28551 unsafe {
28552 (windows_core::Interface::vtable(self).DecodeBody)(
28553 windows_core::Interface::as_raw(self),
28554 ptree.param().abi(),
28555 hdecoderoot as _,
28556 dwflags,
28557 )
28558 .ok()
28559 }
28560 }
28561 pub unsafe fn EnumCertificates(
28562 &self,
28563 hc: *mut core::ffi::c_void,
28564 dwusage: u32,
28565 pprev: *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28566 ppcert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28567 ) -> windows_core::Result<()> {
28568 unsafe {
28569 (windows_core::Interface::vtable(self).EnumCertificates)(
28570 windows_core::Interface::as_raw(self),
28571 hc as _,
28572 dwusage,
28573 pprev as _,
28574 ppcert as _,
28575 )
28576 .ok()
28577 }
28578 }
28579 pub unsafe fn GetCertificateName(
28580 &self,
28581 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28582 cn: CERTNAMETYPE,
28583 ppszname: *mut windows_core::PSTR,
28584 ) -> windows_core::Result<()> {
28585 unsafe {
28586 (windows_core::Interface::vtable(self).GetCertificateName)(
28587 windows_core::Interface::as_raw(self),
28588 px509cert,
28589 cn,
28590 ppszname as _,
28591 )
28592 .ok()
28593 }
28594 }
28595 pub unsafe fn GetMessageType<P1>(
28596 &self,
28597 hwndparent: windows::Win32::Foundation::HWND,
28598 pbody: P1,
28599 pdwsectype: *mut u32,
28600 ) -> windows_core::Result<()>
28601 where
28602 P1: windows_core::Param<IMimeBody>,
28603 {
28604 unsafe {
28605 (windows_core::Interface::vtable(self).GetMessageType)(
28606 windows_core::Interface::as_raw(self),
28607 hwndparent,
28608 pbody.param().abi(),
28609 pdwsectype as _,
28610 )
28611 .ok()
28612 }
28613 }
28614 pub unsafe fn GetCertData(
28615 &self,
28616 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28617 dataid: CERTDATAID,
28618 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28619 ) -> windows_core::Result<()> {
28620 unsafe {
28621 (windows_core::Interface::vtable(self).GetCertData)(
28622 windows_core::Interface::as_raw(self),
28623 px509cert,
28624 dataid,
28625 core::mem::transmute(pvalue),
28626 )
28627 .ok()
28628 }
28629 }
28630}
28631#[repr(C)]
28632pub struct IMimeSecurity_Vtbl {
28633 pub base__: windows_core::IUnknown_Vtbl,
28634 pub InitNew: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
28635 pub CheckInit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
28636 pub EncodeMessage: unsafe extern "system" fn(
28637 *mut core::ffi::c_void,
28638 *mut core::ffi::c_void,
28639 u32,
28640 ) -> windows_core::HRESULT,
28641 pub EncodeBody: unsafe extern "system" fn(
28642 *mut core::ffi::c_void,
28643 *mut core::ffi::c_void,
28644 *mut HBODY__,
28645 u32,
28646 ) -> windows_core::HRESULT,
28647 pub DecodeMessage: unsafe extern "system" fn(
28648 *mut core::ffi::c_void,
28649 *mut core::ffi::c_void,
28650 u32,
28651 ) -> windows_core::HRESULT,
28652 pub DecodeBody: unsafe extern "system" fn(
28653 *mut core::ffi::c_void,
28654 *mut core::ffi::c_void,
28655 *mut HBODY__,
28656 u32,
28657 ) -> windows_core::HRESULT,
28658 pub EnumCertificates: unsafe extern "system" fn(
28659 *mut core::ffi::c_void,
28660 *mut core::ffi::c_void,
28661 u32,
28662 *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28663 *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28664 ) -> windows_core::HRESULT,
28665 pub GetCertificateName: unsafe extern "system" fn(
28666 *mut core::ffi::c_void,
28667 *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28668 CERTNAMETYPE,
28669 *mut windows_core::PSTR,
28670 ) -> windows_core::HRESULT,
28671 pub GetMessageType: unsafe extern "system" fn(
28672 *mut core::ffi::c_void,
28673 windows::Win32::Foundation::HWND,
28674 *mut core::ffi::c_void,
28675 *mut u32,
28676 ) -> windows_core::HRESULT,
28677 pub GetCertData: unsafe extern "system" fn(
28678 *mut core::ffi::c_void,
28679 *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28680 CERTDATAID,
28681 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28682 ) -> windows_core::HRESULT,
28683}
28684pub trait IMimeSecurity_Impl: windows_core::IUnknownImpl {
28685 fn InitNew(&self) -> windows_core::Result<()>;
28686 fn CheckInit(&self) -> windows_core::Result<()>;
28687 fn EncodeMessage(
28688 &self,
28689 ptree: windows_core::Ref<'_, IMimeMessageTree>,
28690 dwflags: u32,
28691 ) -> windows_core::Result<()>;
28692 fn EncodeBody(
28693 &self,
28694 ptree: windows_core::Ref<'_, IMimeMessageTree>,
28695 hencoderoot: *mut HBODY__,
28696 dwflags: u32,
28697 ) -> windows_core::Result<()>;
28698 fn DecodeMessage(
28699 &self,
28700 ptree: windows_core::Ref<'_, IMimeMessageTree>,
28701 dwflags: u32,
28702 ) -> windows_core::Result<()>;
28703 fn DecodeBody(
28704 &self,
28705 ptree: windows_core::Ref<'_, IMimeMessageTree>,
28706 hdecoderoot: *mut HBODY__,
28707 dwflags: u32,
28708 ) -> windows_core::Result<()>;
28709 fn EnumCertificates(
28710 &self,
28711 hc: *mut core::ffi::c_void,
28712 dwusage: u32,
28713 pprev: *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28714 ppcert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28715 ) -> windows_core::Result<()>;
28716 fn GetCertificateName(
28717 &self,
28718 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28719 cn: CERTNAMETYPE,
28720 ppszname: *mut windows_core::PSTR,
28721 ) -> windows_core::Result<()>;
28722 fn GetMessageType(
28723 &self,
28724 hwndparent: windows::Win32::Foundation::HWND,
28725 pbody: windows_core::Ref<'_, IMimeBody>,
28726 pdwsectype: *mut u32,
28727 ) -> windows_core::Result<()>;
28728 fn GetCertData(
28729 &self,
28730 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28731 dataid: CERTDATAID,
28732 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28733 ) -> windows_core::Result<()>;
28734}
28735impl IMimeSecurity_Vtbl {
28736 pub const fn new<Identity: IMimeSecurity_Impl, const OFFSET: isize>() -> Self {
28737 unsafe extern "system" fn InitNew<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28738 this: *mut core::ffi::c_void,
28739 ) -> windows_core::HRESULT {
28740 unsafe {
28741 let this: &Identity =
28742 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28743 IMimeSecurity_Impl::InitNew(this).into()
28744 }
28745 }
28746 unsafe extern "system" fn CheckInit<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28747 this: *mut core::ffi::c_void,
28748 ) -> windows_core::HRESULT {
28749 unsafe {
28750 let this: &Identity =
28751 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28752 IMimeSecurity_Impl::CheckInit(this).into()
28753 }
28754 }
28755 unsafe extern "system" fn EncodeMessage<
28756 Identity: IMimeSecurity_Impl,
28757 const OFFSET: isize,
28758 >(
28759 this: *mut core::ffi::c_void,
28760 ptree: *mut core::ffi::c_void,
28761 dwflags: u32,
28762 ) -> windows_core::HRESULT {
28763 unsafe {
28764 let this: &Identity =
28765 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28766 IMimeSecurity_Impl::EncodeMessage(
28767 this,
28768 core::mem::transmute_copy(&ptree),
28769 core::mem::transmute_copy(&dwflags),
28770 )
28771 .into()
28772 }
28773 }
28774 unsafe extern "system" fn EncodeBody<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28775 this: *mut core::ffi::c_void,
28776 ptree: *mut core::ffi::c_void,
28777 hencoderoot: *mut HBODY__,
28778 dwflags: u32,
28779 ) -> windows_core::HRESULT {
28780 unsafe {
28781 let this: &Identity =
28782 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28783 IMimeSecurity_Impl::EncodeBody(
28784 this,
28785 core::mem::transmute_copy(&ptree),
28786 core::mem::transmute_copy(&hencoderoot),
28787 core::mem::transmute_copy(&dwflags),
28788 )
28789 .into()
28790 }
28791 }
28792 unsafe extern "system" fn DecodeMessage<
28793 Identity: IMimeSecurity_Impl,
28794 const OFFSET: isize,
28795 >(
28796 this: *mut core::ffi::c_void,
28797 ptree: *mut core::ffi::c_void,
28798 dwflags: u32,
28799 ) -> windows_core::HRESULT {
28800 unsafe {
28801 let this: &Identity =
28802 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28803 IMimeSecurity_Impl::DecodeMessage(
28804 this,
28805 core::mem::transmute_copy(&ptree),
28806 core::mem::transmute_copy(&dwflags),
28807 )
28808 .into()
28809 }
28810 }
28811 unsafe extern "system" fn DecodeBody<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28812 this: *mut core::ffi::c_void,
28813 ptree: *mut core::ffi::c_void,
28814 hdecoderoot: *mut HBODY__,
28815 dwflags: u32,
28816 ) -> windows_core::HRESULT {
28817 unsafe {
28818 let this: &Identity =
28819 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28820 IMimeSecurity_Impl::DecodeBody(
28821 this,
28822 core::mem::transmute_copy(&ptree),
28823 core::mem::transmute_copy(&hdecoderoot),
28824 core::mem::transmute_copy(&dwflags),
28825 )
28826 .into()
28827 }
28828 }
28829 unsafe extern "system" fn EnumCertificates<
28830 Identity: IMimeSecurity_Impl,
28831 const OFFSET: isize,
28832 >(
28833 this: *mut core::ffi::c_void,
28834 hc: *mut core::ffi::c_void,
28835 dwusage: u32,
28836 pprev: *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28837 ppcert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28838 ) -> windows_core::HRESULT {
28839 unsafe {
28840 let this: &Identity =
28841 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28842 IMimeSecurity_Impl::EnumCertificates(
28843 this,
28844 core::mem::transmute_copy(&hc),
28845 core::mem::transmute_copy(&dwusage),
28846 core::mem::transmute_copy(&pprev),
28847 core::mem::transmute_copy(&ppcert),
28848 )
28849 .into()
28850 }
28851 }
28852 unsafe extern "system" fn GetCertificateName<
28853 Identity: IMimeSecurity_Impl,
28854 const OFFSET: isize,
28855 >(
28856 this: *mut core::ffi::c_void,
28857 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28858 cn: CERTNAMETYPE,
28859 ppszname: *mut windows_core::PSTR,
28860 ) -> windows_core::HRESULT {
28861 unsafe {
28862 let this: &Identity =
28863 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28864 IMimeSecurity_Impl::GetCertificateName(
28865 this,
28866 core::mem::transmute_copy(&px509cert),
28867 core::mem::transmute_copy(&cn),
28868 core::mem::transmute_copy(&ppszname),
28869 )
28870 .into()
28871 }
28872 }
28873 unsafe extern "system" fn GetMessageType<
28874 Identity: IMimeSecurity_Impl,
28875 const OFFSET: isize,
28876 >(
28877 this: *mut core::ffi::c_void,
28878 hwndparent: windows::Win32::Foundation::HWND,
28879 pbody: *mut core::ffi::c_void,
28880 pdwsectype: *mut u32,
28881 ) -> windows_core::HRESULT {
28882 unsafe {
28883 let this: &Identity =
28884 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28885 IMimeSecurity_Impl::GetMessageType(
28886 this,
28887 core::mem::transmute_copy(&hwndparent),
28888 core::mem::transmute_copy(&pbody),
28889 core::mem::transmute_copy(&pdwsectype),
28890 )
28891 .into()
28892 }
28893 }
28894 unsafe extern "system" fn GetCertData<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28895 this: *mut core::ffi::c_void,
28896 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28897 dataid: CERTDATAID,
28898 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28899 ) -> windows_core::HRESULT {
28900 unsafe {
28901 let this: &Identity =
28902 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28903 IMimeSecurity_Impl::GetCertData(
28904 this,
28905 core::mem::transmute_copy(&px509cert),
28906 core::mem::transmute_copy(&dataid),
28907 core::mem::transmute_copy(&pvalue),
28908 )
28909 .into()
28910 }
28911 }
28912 Self {
28913 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28914 InitNew: InitNew::<Identity, OFFSET>,
28915 CheckInit: CheckInit::<Identity, OFFSET>,
28916 EncodeMessage: EncodeMessage::<Identity, OFFSET>,
28917 EncodeBody: EncodeBody::<Identity, OFFSET>,
28918 DecodeMessage: DecodeMessage::<Identity, OFFSET>,
28919 DecodeBody: DecodeBody::<Identity, OFFSET>,
28920 EnumCertificates: EnumCertificates::<Identity, OFFSET>,
28921 GetCertificateName: GetCertificateName::<Identity, OFFSET>,
28922 GetMessageType: GetMessageType::<Identity, OFFSET>,
28923 GetCertData: GetCertData::<Identity, OFFSET>,
28924 }
28925 }
28926 pub fn matches(iid: &windows_core::GUID) -> bool {
28927 iid == &<IMimeSecurity as windows_core::Interface>::IID
28928 }
28929}
28930impl windows_core::RuntimeName for IMimeSecurity {}
28931windows_core::imp::define_interface!(
28932 IMimeWebDocument,
28933 IMimeWebDocument_Vtbl,
28934 0xee519f11_851a_11d0_825c_00c04fd85ab4
28935);
28936windows_core::imp::interface_hierarchy!(IMimeWebDocument, windows_core::IUnknown);
28937impl IMimeWebDocument {
28938 pub unsafe fn GetURL(&self, ppszurl: *mut windows_core::PSTR) -> windows_core::Result<()> {
28939 unsafe {
28940 (windows_core::Interface::vtable(self).GetURL)(
28941 windows_core::Interface::as_raw(self),
28942 ppszurl as _,
28943 )
28944 .ok()
28945 }
28946 }
28947 pub unsafe fn BindToStorage(
28948 &self,
28949 riid: *const windows_core::GUID,
28950 ppvobject: *mut *mut core::ffi::c_void,
28951 ) -> windows_core::Result<()> {
28952 unsafe {
28953 (windows_core::Interface::vtable(self).BindToStorage)(
28954 windows_core::Interface::as_raw(self),
28955 riid,
28956 ppvobject as _,
28957 )
28958 .ok()
28959 }
28960 }
28961}
28962#[repr(C)]
28963pub struct IMimeWebDocument_Vtbl {
28964 pub base__: windows_core::IUnknown_Vtbl,
28965 pub GetURL: unsafe extern "system" fn(
28966 *mut core::ffi::c_void,
28967 *mut windows_core::PSTR,
28968 ) -> windows_core::HRESULT,
28969 pub BindToStorage: unsafe extern "system" fn(
28970 *mut core::ffi::c_void,
28971 *const windows_core::GUID,
28972 *mut *mut core::ffi::c_void,
28973 ) -> windows_core::HRESULT,
28974}
28975pub trait IMimeWebDocument_Impl: windows_core::IUnknownImpl {
28976 fn GetURL(&self, ppszurl: *mut windows_core::PSTR) -> windows_core::Result<()>;
28977 fn BindToStorage(
28978 &self,
28979 riid: *const windows_core::GUID,
28980 ppvobject: *mut *mut core::ffi::c_void,
28981 ) -> windows_core::Result<()>;
28982}
28983impl IMimeWebDocument_Vtbl {
28984 pub const fn new<Identity: IMimeWebDocument_Impl, const OFFSET: isize>() -> Self {
28985 unsafe extern "system" fn GetURL<Identity: IMimeWebDocument_Impl, const OFFSET: isize>(
28986 this: *mut core::ffi::c_void,
28987 ppszurl: *mut windows_core::PSTR,
28988 ) -> windows_core::HRESULT {
28989 unsafe {
28990 let this: &Identity =
28991 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28992 IMimeWebDocument_Impl::GetURL(this, core::mem::transmute_copy(&ppszurl)).into()
28993 }
28994 }
28995 unsafe extern "system" fn BindToStorage<
28996 Identity: IMimeWebDocument_Impl,
28997 const OFFSET: isize,
28998 >(
28999 this: *mut core::ffi::c_void,
29000 riid: *const windows_core::GUID,
29001 ppvobject: *mut *mut core::ffi::c_void,
29002 ) -> windows_core::HRESULT {
29003 unsafe {
29004 let this: &Identity =
29005 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29006 IMimeWebDocument_Impl::BindToStorage(
29007 this,
29008 core::mem::transmute_copy(&riid),
29009 core::mem::transmute_copy(&ppvobject),
29010 )
29011 .into()
29012 }
29013 }
29014 Self {
29015 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29016 GetURL: GetURL::<Identity, OFFSET>,
29017 BindToStorage: BindToStorage::<Identity, OFFSET>,
29018 }
29019 }
29020 pub fn matches(iid: &windows_core::GUID) -> bool {
29021 iid == &<IMimeWebDocument as windows_core::Interface>::IID
29022 }
29023}
29024impl windows_core::RuntimeName for IMimeWebDocument {}
29025windows_core::imp::define_interface!(
29026 IMsgServiceAdmin,
29027 IMsgServiceAdmin_Vtbl,
29028 0x0002031d_0000_0000_c000_000000000046
29029);
29030windows_core::imp::interface_hierarchy!(IMsgServiceAdmin, windows_core::IUnknown);
29031impl IMsgServiceAdmin {
29032 pub unsafe fn GetLastError(
29033 &self,
29034 hresult: windows_core::HRESULT,
29035 ulflags: u32,
29036 lppmapierror: *mut *mut MAPIERROR,
29037 ) -> windows_core::Result<()> {
29038 unsafe {
29039 (windows_core::Interface::vtable(self).GetLastError)(
29040 windows_core::Interface::as_raw(self),
29041 hresult,
29042 ulflags,
29043 lppmapierror as _,
29044 )
29045 .ok()
29046 }
29047 }
29048 pub unsafe fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29049 unsafe {
29050 let mut result__ = core::mem::zeroed();
29051 (windows_core::Interface::vtable(self).GetMsgServiceTable)(
29052 windows_core::Interface::as_raw(self),
29053 ulflags,
29054 &mut result__,
29055 )
29056 .and_then(|| windows_core::Type::from_abi(result__))
29057 }
29058 }
29059 pub unsafe fn CreateMsgService(
29060 &self,
29061 lpszservice: *mut i8,
29062 lpszdisplayname: *mut i8,
29063 uluiparam: usize,
29064 ulflags: u32,
29065 ) -> windows_core::Result<()> {
29066 unsafe {
29067 (windows_core::Interface::vtable(self).CreateMsgService)(
29068 windows_core::Interface::as_raw(self),
29069 lpszservice as _,
29070 lpszdisplayname as _,
29071 uluiparam,
29072 ulflags,
29073 )
29074 .ok()
29075 }
29076 }
29077 pub unsafe fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()> {
29078 unsafe {
29079 (windows_core::Interface::vtable(self).DeleteMsgService)(
29080 windows_core::Interface::as_raw(self),
29081 lpuid as _,
29082 )
29083 .ok()
29084 }
29085 }
29086 pub unsafe fn CopyMsgService(
29087 &self,
29088 lpuid: *mut MAPIUID,
29089 lpszdisplayname: *mut i8,
29090 lpinterfacetocopy: *mut windows_core::GUID,
29091 lpinterfacedst: *mut windows_core::GUID,
29092 lpobjectdst: *mut core::ffi::c_void,
29093 uluiparam: usize,
29094 ulflags: u32,
29095 ) -> windows_core::Result<()> {
29096 unsafe {
29097 (windows_core::Interface::vtable(self).CopyMsgService)(
29098 windows_core::Interface::as_raw(self),
29099 lpuid as _,
29100 lpszdisplayname as _,
29101 lpinterfacetocopy as _,
29102 lpinterfacedst as _,
29103 lpobjectdst as _,
29104 uluiparam,
29105 ulflags,
29106 )
29107 .ok()
29108 }
29109 }
29110 pub unsafe fn RenameMsgService(
29111 &self,
29112 lpuid: *mut MAPIUID,
29113 ulflags: u32,
29114 lpszdisplayname: *mut i8,
29115 ) -> windows_core::Result<()> {
29116 unsafe {
29117 (windows_core::Interface::vtable(self).RenameMsgService)(
29118 windows_core::Interface::as_raw(self),
29119 lpuid as _,
29120 ulflags,
29121 lpszdisplayname as _,
29122 )
29123 .ok()
29124 }
29125 }
29126 pub unsafe fn ConfigureMsgService(
29127 &self,
29128 lpuid: *mut MAPIUID,
29129 uluiparam: usize,
29130 ulflags: u32,
29131 cvalues: u32,
29132 lpprops: *mut SPropValue,
29133 ) -> windows_core::Result<()> {
29134 unsafe {
29135 (windows_core::Interface::vtable(self).ConfigureMsgService)(
29136 windows_core::Interface::as_raw(self),
29137 lpuid as _,
29138 uluiparam,
29139 ulflags,
29140 cvalues,
29141 lpprops as _,
29142 )
29143 .ok()
29144 }
29145 }
29146 pub unsafe fn OpenProfileSection(
29147 &self,
29148 lpuid: *mut MAPIUID,
29149 lpinterface: *mut windows_core::GUID,
29150 ulflags: u32,
29151 lppprofsect: *mut Option<IProfSect>,
29152 ) -> windows_core::Result<()> {
29153 unsafe {
29154 (windows_core::Interface::vtable(self).OpenProfileSection)(
29155 windows_core::Interface::as_raw(self),
29156 lpuid as _,
29157 lpinterface as _,
29158 ulflags,
29159 core::mem::transmute(lppprofsect),
29160 )
29161 .ok()
29162 }
29163 }
29164 pub unsafe fn MsgServiceTransportOrder(
29165 &self,
29166 cuid: u32,
29167 lpuidlist: *mut MAPIUID,
29168 ulflags: u32,
29169 ) -> windows_core::Result<()> {
29170 unsafe {
29171 (windows_core::Interface::vtable(self).MsgServiceTransportOrder)(
29172 windows_core::Interface::as_raw(self),
29173 cuid,
29174 lpuidlist as _,
29175 ulflags,
29176 )
29177 .ok()
29178 }
29179 }
29180 pub unsafe fn AdminProviders(
29181 &self,
29182 lpuid: *mut MAPIUID,
29183 ulflags: u32,
29184 lppprovideradmin: *mut Option<IProviderAdmin>,
29185 ) -> windows_core::Result<()> {
29186 unsafe {
29187 (windows_core::Interface::vtable(self).AdminProviders)(
29188 windows_core::Interface::as_raw(self),
29189 lpuid as _,
29190 ulflags,
29191 core::mem::transmute(lppprovideradmin),
29192 )
29193 .ok()
29194 }
29195 }
29196 pub unsafe fn SetPrimaryIdentity(
29197 &self,
29198 lpuid: *mut MAPIUID,
29199 ulflags: u32,
29200 ) -> windows_core::Result<()> {
29201 unsafe {
29202 (windows_core::Interface::vtable(self).SetPrimaryIdentity)(
29203 windows_core::Interface::as_raw(self),
29204 lpuid as _,
29205 ulflags,
29206 )
29207 .ok()
29208 }
29209 }
29210 pub unsafe fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29211 unsafe {
29212 let mut result__ = core::mem::zeroed();
29213 (windows_core::Interface::vtable(self).GetProviderTable)(
29214 windows_core::Interface::as_raw(self),
29215 ulflags,
29216 &mut result__,
29217 )
29218 .and_then(|| windows_core::Type::from_abi(result__))
29219 }
29220 }
29221}
29222#[repr(C)]
29223pub struct IMsgServiceAdmin_Vtbl {
29224 pub base__: windows_core::IUnknown_Vtbl,
29225 pub GetLastError: unsafe extern "system" fn(
29226 *mut core::ffi::c_void,
29227 windows_core::HRESULT,
29228 u32,
29229 *mut *mut MAPIERROR,
29230 ) -> windows_core::HRESULT,
29231 pub GetMsgServiceTable: unsafe extern "system" fn(
29232 *mut core::ffi::c_void,
29233 u32,
29234 *mut *mut core::ffi::c_void,
29235 ) -> windows_core::HRESULT,
29236 pub CreateMsgService: unsafe extern "system" fn(
29237 *mut core::ffi::c_void,
29238 *mut i8,
29239 *mut i8,
29240 usize,
29241 u32,
29242 ) -> windows_core::HRESULT,
29243 pub DeleteMsgService:
29244 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
29245 pub CopyMsgService: unsafe extern "system" fn(
29246 *mut core::ffi::c_void,
29247 *mut MAPIUID,
29248 *mut i8,
29249 *mut windows_core::GUID,
29250 *mut windows_core::GUID,
29251 *mut core::ffi::c_void,
29252 usize,
29253 u32,
29254 ) -> windows_core::HRESULT,
29255 pub RenameMsgService: unsafe extern "system" fn(
29256 *mut core::ffi::c_void,
29257 *mut MAPIUID,
29258 u32,
29259 *mut i8,
29260 ) -> windows_core::HRESULT,
29261 pub ConfigureMsgService: unsafe extern "system" fn(
29262 *mut core::ffi::c_void,
29263 *mut MAPIUID,
29264 usize,
29265 u32,
29266 u32,
29267 *mut SPropValue,
29268 ) -> windows_core::HRESULT,
29269 pub OpenProfileSection: unsafe extern "system" fn(
29270 *mut core::ffi::c_void,
29271 *mut MAPIUID,
29272 *mut windows_core::GUID,
29273 u32,
29274 *mut *mut core::ffi::c_void,
29275 ) -> windows_core::HRESULT,
29276 pub MsgServiceTransportOrder: unsafe extern "system" fn(
29277 *mut core::ffi::c_void,
29278 u32,
29279 *mut MAPIUID,
29280 u32,
29281 ) -> windows_core::HRESULT,
29282 pub AdminProviders: unsafe extern "system" fn(
29283 *mut core::ffi::c_void,
29284 *mut MAPIUID,
29285 u32,
29286 *mut *mut core::ffi::c_void,
29287 ) -> windows_core::HRESULT,
29288 pub SetPrimaryIdentity: unsafe extern "system" fn(
29289 *mut core::ffi::c_void,
29290 *mut MAPIUID,
29291 u32,
29292 ) -> windows_core::HRESULT,
29293 pub GetProviderTable: unsafe extern "system" fn(
29294 *mut core::ffi::c_void,
29295 u32,
29296 *mut *mut core::ffi::c_void,
29297 ) -> windows_core::HRESULT,
29298}
29299pub trait IMsgServiceAdmin_Impl: windows_core::IUnknownImpl {
29300 fn GetLastError(
29301 &self,
29302 hresult: windows_core::HRESULT,
29303 ulflags: u32,
29304 lppmapierror: *mut *mut MAPIERROR,
29305 ) -> windows_core::Result<()>;
29306 fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
29307 fn CreateMsgService(
29308 &self,
29309 lpszservice: *mut i8,
29310 lpszdisplayname: *mut i8,
29311 uluiparam: usize,
29312 ulflags: u32,
29313 ) -> windows_core::Result<()>;
29314 fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()>;
29315 fn CopyMsgService(
29316 &self,
29317 lpuid: *mut MAPIUID,
29318 lpszdisplayname: *mut i8,
29319 lpinterfacetocopy: *mut windows_core::GUID,
29320 lpinterfacedst: *mut windows_core::GUID,
29321 lpobjectdst: *mut core::ffi::c_void,
29322 uluiparam: usize,
29323 ulflags: u32,
29324 ) -> windows_core::Result<()>;
29325 fn RenameMsgService(
29326 &self,
29327 lpuid: *mut MAPIUID,
29328 ulflags: u32,
29329 lpszdisplayname: *mut i8,
29330 ) -> windows_core::Result<()>;
29331 fn ConfigureMsgService(
29332 &self,
29333 lpuid: *mut MAPIUID,
29334 uluiparam: usize,
29335 ulflags: u32,
29336 cvalues: u32,
29337 lpprops: *mut SPropValue,
29338 ) -> windows_core::Result<()>;
29339 fn OpenProfileSection(
29340 &self,
29341 lpuid: *mut MAPIUID,
29342 lpinterface: *mut windows_core::GUID,
29343 ulflags: u32,
29344 lppprofsect: windows_core::OutRef<'_, IProfSect>,
29345 ) -> windows_core::Result<()>;
29346 fn MsgServiceTransportOrder(
29347 &self,
29348 cuid: u32,
29349 lpuidlist: *mut MAPIUID,
29350 ulflags: u32,
29351 ) -> windows_core::Result<()>;
29352 fn AdminProviders(
29353 &self,
29354 lpuid: *mut MAPIUID,
29355 ulflags: u32,
29356 lppprovideradmin: windows_core::OutRef<'_, IProviderAdmin>,
29357 ) -> windows_core::Result<()>;
29358 fn SetPrimaryIdentity(&self, lpuid: *mut MAPIUID, ulflags: u32) -> windows_core::Result<()>;
29359 fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
29360}
29361impl IMsgServiceAdmin_Vtbl {
29362 pub const fn new<Identity: IMsgServiceAdmin_Impl, const OFFSET: isize>() -> Self {
29363 unsafe extern "system" fn GetLastError<
29364 Identity: IMsgServiceAdmin_Impl,
29365 const OFFSET: isize,
29366 >(
29367 this: *mut core::ffi::c_void,
29368 hresult: windows_core::HRESULT,
29369 ulflags: u32,
29370 lppmapierror: *mut *mut MAPIERROR,
29371 ) -> windows_core::HRESULT {
29372 unsafe {
29373 let this: &Identity =
29374 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29375 IMsgServiceAdmin_Impl::GetLastError(
29376 this,
29377 core::mem::transmute_copy(&hresult),
29378 core::mem::transmute_copy(&ulflags),
29379 core::mem::transmute_copy(&lppmapierror),
29380 )
29381 .into()
29382 }
29383 }
29384 unsafe extern "system" fn GetMsgServiceTable<
29385 Identity: IMsgServiceAdmin_Impl,
29386 const OFFSET: isize,
29387 >(
29388 this: *mut core::ffi::c_void,
29389 ulflags: u32,
29390 lpptable: *mut *mut core::ffi::c_void,
29391 ) -> windows_core::HRESULT {
29392 unsafe {
29393 let this: &Identity =
29394 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29395 match IMsgServiceAdmin_Impl::GetMsgServiceTable(
29396 this,
29397 core::mem::transmute_copy(&ulflags),
29398 ) {
29399 Ok(ok__) => {
29400 lpptable.write(core::mem::transmute(ok__));
29401 windows_core::HRESULT(0)
29402 }
29403 Err(err) => err.into(),
29404 }
29405 }
29406 }
29407 unsafe extern "system" fn CreateMsgService<
29408 Identity: IMsgServiceAdmin_Impl,
29409 const OFFSET: isize,
29410 >(
29411 this: *mut core::ffi::c_void,
29412 lpszservice: *mut i8,
29413 lpszdisplayname: *mut i8,
29414 uluiparam: usize,
29415 ulflags: u32,
29416 ) -> windows_core::HRESULT {
29417 unsafe {
29418 let this: &Identity =
29419 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29420 IMsgServiceAdmin_Impl::CreateMsgService(
29421 this,
29422 core::mem::transmute_copy(&lpszservice),
29423 core::mem::transmute_copy(&lpszdisplayname),
29424 core::mem::transmute_copy(&uluiparam),
29425 core::mem::transmute_copy(&ulflags),
29426 )
29427 .into()
29428 }
29429 }
29430 unsafe extern "system" fn DeleteMsgService<
29431 Identity: IMsgServiceAdmin_Impl,
29432 const OFFSET: isize,
29433 >(
29434 this: *mut core::ffi::c_void,
29435 lpuid: *mut MAPIUID,
29436 ) -> windows_core::HRESULT {
29437 unsafe {
29438 let this: &Identity =
29439 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29440 IMsgServiceAdmin_Impl::DeleteMsgService(this, core::mem::transmute_copy(&lpuid))
29441 .into()
29442 }
29443 }
29444 unsafe extern "system" fn CopyMsgService<
29445 Identity: IMsgServiceAdmin_Impl,
29446 const OFFSET: isize,
29447 >(
29448 this: *mut core::ffi::c_void,
29449 lpuid: *mut MAPIUID,
29450 lpszdisplayname: *mut i8,
29451 lpinterfacetocopy: *mut windows_core::GUID,
29452 lpinterfacedst: *mut windows_core::GUID,
29453 lpobjectdst: *mut core::ffi::c_void,
29454 uluiparam: usize,
29455 ulflags: u32,
29456 ) -> windows_core::HRESULT {
29457 unsafe {
29458 let this: &Identity =
29459 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29460 IMsgServiceAdmin_Impl::CopyMsgService(
29461 this,
29462 core::mem::transmute_copy(&lpuid),
29463 core::mem::transmute_copy(&lpszdisplayname),
29464 core::mem::transmute_copy(&lpinterfacetocopy),
29465 core::mem::transmute_copy(&lpinterfacedst),
29466 core::mem::transmute_copy(&lpobjectdst),
29467 core::mem::transmute_copy(&uluiparam),
29468 core::mem::transmute_copy(&ulflags),
29469 )
29470 .into()
29471 }
29472 }
29473 unsafe extern "system" fn RenameMsgService<
29474 Identity: IMsgServiceAdmin_Impl,
29475 const OFFSET: isize,
29476 >(
29477 this: *mut core::ffi::c_void,
29478 lpuid: *mut MAPIUID,
29479 ulflags: u32,
29480 lpszdisplayname: *mut i8,
29481 ) -> windows_core::HRESULT {
29482 unsafe {
29483 let this: &Identity =
29484 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29485 IMsgServiceAdmin_Impl::RenameMsgService(
29486 this,
29487 core::mem::transmute_copy(&lpuid),
29488 core::mem::transmute_copy(&ulflags),
29489 core::mem::transmute_copy(&lpszdisplayname),
29490 )
29491 .into()
29492 }
29493 }
29494 unsafe extern "system" fn ConfigureMsgService<
29495 Identity: IMsgServiceAdmin_Impl,
29496 const OFFSET: isize,
29497 >(
29498 this: *mut core::ffi::c_void,
29499 lpuid: *mut MAPIUID,
29500 uluiparam: usize,
29501 ulflags: u32,
29502 cvalues: u32,
29503 lpprops: *mut SPropValue,
29504 ) -> windows_core::HRESULT {
29505 unsafe {
29506 let this: &Identity =
29507 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29508 IMsgServiceAdmin_Impl::ConfigureMsgService(
29509 this,
29510 core::mem::transmute_copy(&lpuid),
29511 core::mem::transmute_copy(&uluiparam),
29512 core::mem::transmute_copy(&ulflags),
29513 core::mem::transmute_copy(&cvalues),
29514 core::mem::transmute_copy(&lpprops),
29515 )
29516 .into()
29517 }
29518 }
29519 unsafe extern "system" fn OpenProfileSection<
29520 Identity: IMsgServiceAdmin_Impl,
29521 const OFFSET: isize,
29522 >(
29523 this: *mut core::ffi::c_void,
29524 lpuid: *mut MAPIUID,
29525 lpinterface: *mut windows_core::GUID,
29526 ulflags: u32,
29527 lppprofsect: *mut *mut core::ffi::c_void,
29528 ) -> windows_core::HRESULT {
29529 unsafe {
29530 let this: &Identity =
29531 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29532 IMsgServiceAdmin_Impl::OpenProfileSection(
29533 this,
29534 core::mem::transmute_copy(&lpuid),
29535 core::mem::transmute_copy(&lpinterface),
29536 core::mem::transmute_copy(&ulflags),
29537 core::mem::transmute_copy(&lppprofsect),
29538 )
29539 .into()
29540 }
29541 }
29542 unsafe extern "system" fn MsgServiceTransportOrder<
29543 Identity: IMsgServiceAdmin_Impl,
29544 const OFFSET: isize,
29545 >(
29546 this: *mut core::ffi::c_void,
29547 cuid: u32,
29548 lpuidlist: *mut MAPIUID,
29549 ulflags: u32,
29550 ) -> windows_core::HRESULT {
29551 unsafe {
29552 let this: &Identity =
29553 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29554 IMsgServiceAdmin_Impl::MsgServiceTransportOrder(
29555 this,
29556 core::mem::transmute_copy(&cuid),
29557 core::mem::transmute_copy(&lpuidlist),
29558 core::mem::transmute_copy(&ulflags),
29559 )
29560 .into()
29561 }
29562 }
29563 unsafe extern "system" fn AdminProviders<
29564 Identity: IMsgServiceAdmin_Impl,
29565 const OFFSET: isize,
29566 >(
29567 this: *mut core::ffi::c_void,
29568 lpuid: *mut MAPIUID,
29569 ulflags: u32,
29570 lppprovideradmin: *mut *mut core::ffi::c_void,
29571 ) -> windows_core::HRESULT {
29572 unsafe {
29573 let this: &Identity =
29574 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29575 IMsgServiceAdmin_Impl::AdminProviders(
29576 this,
29577 core::mem::transmute_copy(&lpuid),
29578 core::mem::transmute_copy(&ulflags),
29579 core::mem::transmute_copy(&lppprovideradmin),
29580 )
29581 .into()
29582 }
29583 }
29584 unsafe extern "system" fn SetPrimaryIdentity<
29585 Identity: IMsgServiceAdmin_Impl,
29586 const OFFSET: isize,
29587 >(
29588 this: *mut core::ffi::c_void,
29589 lpuid: *mut MAPIUID,
29590 ulflags: u32,
29591 ) -> windows_core::HRESULT {
29592 unsafe {
29593 let this: &Identity =
29594 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29595 IMsgServiceAdmin_Impl::SetPrimaryIdentity(
29596 this,
29597 core::mem::transmute_copy(&lpuid),
29598 core::mem::transmute_copy(&ulflags),
29599 )
29600 .into()
29601 }
29602 }
29603 unsafe extern "system" fn GetProviderTable<
29604 Identity: IMsgServiceAdmin_Impl,
29605 const OFFSET: isize,
29606 >(
29607 this: *mut core::ffi::c_void,
29608 ulflags: u32,
29609 lpptable: *mut *mut core::ffi::c_void,
29610 ) -> windows_core::HRESULT {
29611 unsafe {
29612 let this: &Identity =
29613 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29614 match IMsgServiceAdmin_Impl::GetProviderTable(
29615 this,
29616 core::mem::transmute_copy(&ulflags),
29617 ) {
29618 Ok(ok__) => {
29619 lpptable.write(core::mem::transmute(ok__));
29620 windows_core::HRESULT(0)
29621 }
29622 Err(err) => err.into(),
29623 }
29624 }
29625 }
29626 Self {
29627 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29628 GetLastError: GetLastError::<Identity, OFFSET>,
29629 GetMsgServiceTable: GetMsgServiceTable::<Identity, OFFSET>,
29630 CreateMsgService: CreateMsgService::<Identity, OFFSET>,
29631 DeleteMsgService: DeleteMsgService::<Identity, OFFSET>,
29632 CopyMsgService: CopyMsgService::<Identity, OFFSET>,
29633 RenameMsgService: RenameMsgService::<Identity, OFFSET>,
29634 ConfigureMsgService: ConfigureMsgService::<Identity, OFFSET>,
29635 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
29636 MsgServiceTransportOrder: MsgServiceTransportOrder::<Identity, OFFSET>,
29637 AdminProviders: AdminProviders::<Identity, OFFSET>,
29638 SetPrimaryIdentity: SetPrimaryIdentity::<Identity, OFFSET>,
29639 GetProviderTable: GetProviderTable::<Identity, OFFSET>,
29640 }
29641 }
29642 pub fn matches(iid: &windows_core::GUID) -> bool {
29643 iid == &<IMsgServiceAdmin as windows_core::Interface>::IID
29644 }
29645}
29646impl windows_core::RuntimeName for IMsgServiceAdmin {}
29647windows_core::imp::define_interface!(
29648 IMsgServiceAdmin2,
29649 IMsgServiceAdmin2_Vtbl,
29650 0x00020387_0000_0000_c000_000000000046
29651);
29652windows_core::imp::interface_hierarchy!(IMsgServiceAdmin2, windows_core::IUnknown);
29653impl IMsgServiceAdmin2 {
29654 pub unsafe fn GetLastError(
29655 &self,
29656 hresult: windows_core::HRESULT,
29657 ulflags: u32,
29658 lppmapierror: *mut *mut MAPIERROR,
29659 ) -> windows_core::Result<()> {
29660 unsafe {
29661 (windows_core::Interface::vtable(self).GetLastError)(
29662 windows_core::Interface::as_raw(self),
29663 hresult,
29664 ulflags,
29665 lppmapierror as _,
29666 )
29667 .ok()
29668 }
29669 }
29670 pub unsafe fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29671 unsafe {
29672 let mut result__ = core::mem::zeroed();
29673 (windows_core::Interface::vtable(self).GetMsgServiceTable)(
29674 windows_core::Interface::as_raw(self),
29675 ulflags,
29676 &mut result__,
29677 )
29678 .and_then(|| windows_core::Type::from_abi(result__))
29679 }
29680 }
29681 pub unsafe fn CreateMsgService(
29682 &self,
29683 lpszservice: *mut i8,
29684 lpszdisplayname: *mut i8,
29685 uluiparam: usize,
29686 ulflags: u32,
29687 ) -> windows_core::Result<()> {
29688 unsafe {
29689 (windows_core::Interface::vtable(self).CreateMsgService)(
29690 windows_core::Interface::as_raw(self),
29691 lpszservice as _,
29692 lpszdisplayname as _,
29693 uluiparam,
29694 ulflags,
29695 )
29696 .ok()
29697 }
29698 }
29699 pub unsafe fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()> {
29700 unsafe {
29701 (windows_core::Interface::vtable(self).DeleteMsgService)(
29702 windows_core::Interface::as_raw(self),
29703 lpuid as _,
29704 )
29705 .ok()
29706 }
29707 }
29708 pub unsafe fn CopyMsgService(
29709 &self,
29710 lpuid: *mut MAPIUID,
29711 lpszdisplayname: *mut i8,
29712 lpinterfacetocopy: *mut windows_core::GUID,
29713 lpinterfacedst: *mut windows_core::GUID,
29714 lpobjectdst: *mut core::ffi::c_void,
29715 uluiparam: usize,
29716 ulflags: u32,
29717 ) -> windows_core::Result<()> {
29718 unsafe {
29719 (windows_core::Interface::vtable(self).CopyMsgService)(
29720 windows_core::Interface::as_raw(self),
29721 lpuid as _,
29722 lpszdisplayname as _,
29723 lpinterfacetocopy as _,
29724 lpinterfacedst as _,
29725 lpobjectdst as _,
29726 uluiparam,
29727 ulflags,
29728 )
29729 .ok()
29730 }
29731 }
29732 pub unsafe fn RenameMsgService(
29733 &self,
29734 lpuid: *mut MAPIUID,
29735 ulflags: u32,
29736 lpszdisplayname: *mut i8,
29737 ) -> windows_core::Result<()> {
29738 unsafe {
29739 (windows_core::Interface::vtable(self).RenameMsgService)(
29740 windows_core::Interface::as_raw(self),
29741 lpuid as _,
29742 ulflags,
29743 lpszdisplayname as _,
29744 )
29745 .ok()
29746 }
29747 }
29748 pub unsafe fn ConfigureMsgService(
29749 &self,
29750 lpuid: *mut MAPIUID,
29751 uluiparam: usize,
29752 ulflags: u32,
29753 cvalues: u32,
29754 lpprops: *mut SPropValue,
29755 ) -> windows_core::Result<()> {
29756 unsafe {
29757 (windows_core::Interface::vtable(self).ConfigureMsgService)(
29758 windows_core::Interface::as_raw(self),
29759 lpuid as _,
29760 uluiparam,
29761 ulflags,
29762 cvalues,
29763 lpprops as _,
29764 )
29765 .ok()
29766 }
29767 }
29768 pub unsafe fn OpenProfileSection(
29769 &self,
29770 lpuid: *mut MAPIUID,
29771 lpinterface: *mut windows_core::GUID,
29772 ulflags: u32,
29773 lppprofsect: *mut Option<IProfSect>,
29774 ) -> windows_core::Result<()> {
29775 unsafe {
29776 (windows_core::Interface::vtable(self).OpenProfileSection)(
29777 windows_core::Interface::as_raw(self),
29778 lpuid as _,
29779 lpinterface as _,
29780 ulflags,
29781 core::mem::transmute(lppprofsect),
29782 )
29783 .ok()
29784 }
29785 }
29786 pub unsafe fn MsgServiceTransportOrder(
29787 &self,
29788 cuid: u32,
29789 lpuidlist: *mut MAPIUID,
29790 ulflags: u32,
29791 ) -> windows_core::Result<()> {
29792 unsafe {
29793 (windows_core::Interface::vtable(self).MsgServiceTransportOrder)(
29794 windows_core::Interface::as_raw(self),
29795 cuid,
29796 lpuidlist as _,
29797 ulflags,
29798 )
29799 .ok()
29800 }
29801 }
29802 pub unsafe fn AdminProviders(
29803 &self,
29804 lpuid: *mut MAPIUID,
29805 ulflags: u32,
29806 lppprovideradmin: *mut Option<IProviderAdmin>,
29807 ) -> windows_core::Result<()> {
29808 unsafe {
29809 (windows_core::Interface::vtable(self).AdminProviders)(
29810 windows_core::Interface::as_raw(self),
29811 lpuid as _,
29812 ulflags,
29813 core::mem::transmute(lppprovideradmin),
29814 )
29815 .ok()
29816 }
29817 }
29818 pub unsafe fn SetPrimaryIdentity(
29819 &self,
29820 lpuid: *mut MAPIUID,
29821 ulflags: u32,
29822 ) -> windows_core::Result<()> {
29823 unsafe {
29824 (windows_core::Interface::vtable(self).SetPrimaryIdentity)(
29825 windows_core::Interface::as_raw(self),
29826 lpuid as _,
29827 ulflags,
29828 )
29829 .ok()
29830 }
29831 }
29832 pub unsafe fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29833 unsafe {
29834 let mut result__ = core::mem::zeroed();
29835 (windows_core::Interface::vtable(self).GetProviderTable)(
29836 windows_core::Interface::as_raw(self),
29837 ulflags,
29838 &mut result__,
29839 )
29840 .and_then(|| windows_core::Type::from_abi(result__))
29841 }
29842 }
29843 pub unsafe fn CreateMsgServiceEx(
29844 &self,
29845 lpszservice: *mut i8,
29846 lpszdisplayname: *mut i8,
29847 uluiparam: usize,
29848 ulflags: u32,
29849 lpuidservice: *mut MAPIUID,
29850 ) -> windows_core::Result<()> {
29851 unsafe {
29852 (windows_core::Interface::vtable(self).CreateMsgServiceEx)(
29853 windows_core::Interface::as_raw(self),
29854 lpszservice as _,
29855 lpszdisplayname as _,
29856 uluiparam,
29857 ulflags,
29858 lpuidservice as _,
29859 )
29860 .ok()
29861 }
29862 }
29863}
29864#[repr(C)]
29865pub struct IMsgServiceAdmin2_Vtbl {
29866 pub base__: windows_core::IUnknown_Vtbl,
29867 pub GetLastError: unsafe extern "system" fn(
29868 *mut core::ffi::c_void,
29869 windows_core::HRESULT,
29870 u32,
29871 *mut *mut MAPIERROR,
29872 ) -> windows_core::HRESULT,
29873 pub GetMsgServiceTable: unsafe extern "system" fn(
29874 *mut core::ffi::c_void,
29875 u32,
29876 *mut *mut core::ffi::c_void,
29877 ) -> windows_core::HRESULT,
29878 pub CreateMsgService: unsafe extern "system" fn(
29879 *mut core::ffi::c_void,
29880 *mut i8,
29881 *mut i8,
29882 usize,
29883 u32,
29884 ) -> windows_core::HRESULT,
29885 pub DeleteMsgService:
29886 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
29887 pub CopyMsgService: unsafe extern "system" fn(
29888 *mut core::ffi::c_void,
29889 *mut MAPIUID,
29890 *mut i8,
29891 *mut windows_core::GUID,
29892 *mut windows_core::GUID,
29893 *mut core::ffi::c_void,
29894 usize,
29895 u32,
29896 ) -> windows_core::HRESULT,
29897 pub RenameMsgService: unsafe extern "system" fn(
29898 *mut core::ffi::c_void,
29899 *mut MAPIUID,
29900 u32,
29901 *mut i8,
29902 ) -> windows_core::HRESULT,
29903 pub ConfigureMsgService: unsafe extern "system" fn(
29904 *mut core::ffi::c_void,
29905 *mut MAPIUID,
29906 usize,
29907 u32,
29908 u32,
29909 *mut SPropValue,
29910 ) -> windows_core::HRESULT,
29911 pub OpenProfileSection: unsafe extern "system" fn(
29912 *mut core::ffi::c_void,
29913 *mut MAPIUID,
29914 *mut windows_core::GUID,
29915 u32,
29916 *mut *mut core::ffi::c_void,
29917 ) -> windows_core::HRESULT,
29918 pub MsgServiceTransportOrder: unsafe extern "system" fn(
29919 *mut core::ffi::c_void,
29920 u32,
29921 *mut MAPIUID,
29922 u32,
29923 ) -> windows_core::HRESULT,
29924 pub AdminProviders: unsafe extern "system" fn(
29925 *mut core::ffi::c_void,
29926 *mut MAPIUID,
29927 u32,
29928 *mut *mut core::ffi::c_void,
29929 ) -> windows_core::HRESULT,
29930 pub SetPrimaryIdentity: unsafe extern "system" fn(
29931 *mut core::ffi::c_void,
29932 *mut MAPIUID,
29933 u32,
29934 ) -> windows_core::HRESULT,
29935 pub GetProviderTable: unsafe extern "system" fn(
29936 *mut core::ffi::c_void,
29937 u32,
29938 *mut *mut core::ffi::c_void,
29939 ) -> windows_core::HRESULT,
29940 pub CreateMsgServiceEx: unsafe extern "system" fn(
29941 *mut core::ffi::c_void,
29942 *mut i8,
29943 *mut i8,
29944 usize,
29945 u32,
29946 *mut MAPIUID,
29947 ) -> windows_core::HRESULT,
29948}
29949pub trait IMsgServiceAdmin2_Impl: windows_core::IUnknownImpl {
29950 fn GetLastError(
29951 &self,
29952 hresult: windows_core::HRESULT,
29953 ulflags: u32,
29954 lppmapierror: *mut *mut MAPIERROR,
29955 ) -> windows_core::Result<()>;
29956 fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
29957 fn CreateMsgService(
29958 &self,
29959 lpszservice: *mut i8,
29960 lpszdisplayname: *mut i8,
29961 uluiparam: usize,
29962 ulflags: u32,
29963 ) -> windows_core::Result<()>;
29964 fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()>;
29965 fn CopyMsgService(
29966 &self,
29967 lpuid: *mut MAPIUID,
29968 lpszdisplayname: *mut i8,
29969 lpinterfacetocopy: *mut windows_core::GUID,
29970 lpinterfacedst: *mut windows_core::GUID,
29971 lpobjectdst: *mut core::ffi::c_void,
29972 uluiparam: usize,
29973 ulflags: u32,
29974 ) -> windows_core::Result<()>;
29975 fn RenameMsgService(
29976 &self,
29977 lpuid: *mut MAPIUID,
29978 ulflags: u32,
29979 lpszdisplayname: *mut i8,
29980 ) -> windows_core::Result<()>;
29981 fn ConfigureMsgService(
29982 &self,
29983 lpuid: *mut MAPIUID,
29984 uluiparam: usize,
29985 ulflags: u32,
29986 cvalues: u32,
29987 lpprops: *mut SPropValue,
29988 ) -> windows_core::Result<()>;
29989 fn OpenProfileSection(
29990 &self,
29991 lpuid: *mut MAPIUID,
29992 lpinterface: *mut windows_core::GUID,
29993 ulflags: u32,
29994 lppprofsect: windows_core::OutRef<'_, IProfSect>,
29995 ) -> windows_core::Result<()>;
29996 fn MsgServiceTransportOrder(
29997 &self,
29998 cuid: u32,
29999 lpuidlist: *mut MAPIUID,
30000 ulflags: u32,
30001 ) -> windows_core::Result<()>;
30002 fn AdminProviders(
30003 &self,
30004 lpuid: *mut MAPIUID,
30005 ulflags: u32,
30006 lppprovideradmin: windows_core::OutRef<'_, IProviderAdmin>,
30007 ) -> windows_core::Result<()>;
30008 fn SetPrimaryIdentity(&self, lpuid: *mut MAPIUID, ulflags: u32) -> windows_core::Result<()>;
30009 fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
30010 fn CreateMsgServiceEx(
30011 &self,
30012 lpszservice: *mut i8,
30013 lpszdisplayname: *mut i8,
30014 uluiparam: usize,
30015 ulflags: u32,
30016 lpuidservice: *mut MAPIUID,
30017 ) -> windows_core::Result<()>;
30018}
30019impl IMsgServiceAdmin2_Vtbl {
30020 pub const fn new<Identity: IMsgServiceAdmin2_Impl, const OFFSET: isize>() -> Self {
30021 unsafe extern "system" fn GetLastError<
30022 Identity: IMsgServiceAdmin2_Impl,
30023 const OFFSET: isize,
30024 >(
30025 this: *mut core::ffi::c_void,
30026 hresult: windows_core::HRESULT,
30027 ulflags: u32,
30028 lppmapierror: *mut *mut MAPIERROR,
30029 ) -> windows_core::HRESULT {
30030 unsafe {
30031 let this: &Identity =
30032 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30033 IMsgServiceAdmin2_Impl::GetLastError(
30034 this,
30035 core::mem::transmute_copy(&hresult),
30036 core::mem::transmute_copy(&ulflags),
30037 core::mem::transmute_copy(&lppmapierror),
30038 )
30039 .into()
30040 }
30041 }
30042 unsafe extern "system" fn GetMsgServiceTable<
30043 Identity: IMsgServiceAdmin2_Impl,
30044 const OFFSET: isize,
30045 >(
30046 this: *mut core::ffi::c_void,
30047 ulflags: u32,
30048 lpptable: *mut *mut core::ffi::c_void,
30049 ) -> windows_core::HRESULT {
30050 unsafe {
30051 let this: &Identity =
30052 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30053 match IMsgServiceAdmin2_Impl::GetMsgServiceTable(
30054 this,
30055 core::mem::transmute_copy(&ulflags),
30056 ) {
30057 Ok(ok__) => {
30058 lpptable.write(core::mem::transmute(ok__));
30059 windows_core::HRESULT(0)
30060 }
30061 Err(err) => err.into(),
30062 }
30063 }
30064 }
30065 unsafe extern "system" fn CreateMsgService<
30066 Identity: IMsgServiceAdmin2_Impl,
30067 const OFFSET: isize,
30068 >(
30069 this: *mut core::ffi::c_void,
30070 lpszservice: *mut i8,
30071 lpszdisplayname: *mut i8,
30072 uluiparam: usize,
30073 ulflags: u32,
30074 ) -> windows_core::HRESULT {
30075 unsafe {
30076 let this: &Identity =
30077 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30078 IMsgServiceAdmin2_Impl::CreateMsgService(
30079 this,
30080 core::mem::transmute_copy(&lpszservice),
30081 core::mem::transmute_copy(&lpszdisplayname),
30082 core::mem::transmute_copy(&uluiparam),
30083 core::mem::transmute_copy(&ulflags),
30084 )
30085 .into()
30086 }
30087 }
30088 unsafe extern "system" fn DeleteMsgService<
30089 Identity: IMsgServiceAdmin2_Impl,
30090 const OFFSET: isize,
30091 >(
30092 this: *mut core::ffi::c_void,
30093 lpuid: *mut MAPIUID,
30094 ) -> windows_core::HRESULT {
30095 unsafe {
30096 let this: &Identity =
30097 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30098 IMsgServiceAdmin2_Impl::DeleteMsgService(this, core::mem::transmute_copy(&lpuid))
30099 .into()
30100 }
30101 }
30102 unsafe extern "system" fn CopyMsgService<
30103 Identity: IMsgServiceAdmin2_Impl,
30104 const OFFSET: isize,
30105 >(
30106 this: *mut core::ffi::c_void,
30107 lpuid: *mut MAPIUID,
30108 lpszdisplayname: *mut i8,
30109 lpinterfacetocopy: *mut windows_core::GUID,
30110 lpinterfacedst: *mut windows_core::GUID,
30111 lpobjectdst: *mut core::ffi::c_void,
30112 uluiparam: usize,
30113 ulflags: u32,
30114 ) -> windows_core::HRESULT {
30115 unsafe {
30116 let this: &Identity =
30117 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30118 IMsgServiceAdmin2_Impl::CopyMsgService(
30119 this,
30120 core::mem::transmute_copy(&lpuid),
30121 core::mem::transmute_copy(&lpszdisplayname),
30122 core::mem::transmute_copy(&lpinterfacetocopy),
30123 core::mem::transmute_copy(&lpinterfacedst),
30124 core::mem::transmute_copy(&lpobjectdst),
30125 core::mem::transmute_copy(&uluiparam),
30126 core::mem::transmute_copy(&ulflags),
30127 )
30128 .into()
30129 }
30130 }
30131 unsafe extern "system" fn RenameMsgService<
30132 Identity: IMsgServiceAdmin2_Impl,
30133 const OFFSET: isize,
30134 >(
30135 this: *mut core::ffi::c_void,
30136 lpuid: *mut MAPIUID,
30137 ulflags: u32,
30138 lpszdisplayname: *mut i8,
30139 ) -> windows_core::HRESULT {
30140 unsafe {
30141 let this: &Identity =
30142 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30143 IMsgServiceAdmin2_Impl::RenameMsgService(
30144 this,
30145 core::mem::transmute_copy(&lpuid),
30146 core::mem::transmute_copy(&ulflags),
30147 core::mem::transmute_copy(&lpszdisplayname),
30148 )
30149 .into()
30150 }
30151 }
30152 unsafe extern "system" fn ConfigureMsgService<
30153 Identity: IMsgServiceAdmin2_Impl,
30154 const OFFSET: isize,
30155 >(
30156 this: *mut core::ffi::c_void,
30157 lpuid: *mut MAPIUID,
30158 uluiparam: usize,
30159 ulflags: u32,
30160 cvalues: u32,
30161 lpprops: *mut SPropValue,
30162 ) -> windows_core::HRESULT {
30163 unsafe {
30164 let this: &Identity =
30165 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30166 IMsgServiceAdmin2_Impl::ConfigureMsgService(
30167 this,
30168 core::mem::transmute_copy(&lpuid),
30169 core::mem::transmute_copy(&uluiparam),
30170 core::mem::transmute_copy(&ulflags),
30171 core::mem::transmute_copy(&cvalues),
30172 core::mem::transmute_copy(&lpprops),
30173 )
30174 .into()
30175 }
30176 }
30177 unsafe extern "system" fn OpenProfileSection<
30178 Identity: IMsgServiceAdmin2_Impl,
30179 const OFFSET: isize,
30180 >(
30181 this: *mut core::ffi::c_void,
30182 lpuid: *mut MAPIUID,
30183 lpinterface: *mut windows_core::GUID,
30184 ulflags: u32,
30185 lppprofsect: *mut *mut core::ffi::c_void,
30186 ) -> windows_core::HRESULT {
30187 unsafe {
30188 let this: &Identity =
30189 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30190 IMsgServiceAdmin2_Impl::OpenProfileSection(
30191 this,
30192 core::mem::transmute_copy(&lpuid),
30193 core::mem::transmute_copy(&lpinterface),
30194 core::mem::transmute_copy(&ulflags),
30195 core::mem::transmute_copy(&lppprofsect),
30196 )
30197 .into()
30198 }
30199 }
30200 unsafe extern "system" fn MsgServiceTransportOrder<
30201 Identity: IMsgServiceAdmin2_Impl,
30202 const OFFSET: isize,
30203 >(
30204 this: *mut core::ffi::c_void,
30205 cuid: u32,
30206 lpuidlist: *mut MAPIUID,
30207 ulflags: u32,
30208 ) -> windows_core::HRESULT {
30209 unsafe {
30210 let this: &Identity =
30211 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30212 IMsgServiceAdmin2_Impl::MsgServiceTransportOrder(
30213 this,
30214 core::mem::transmute_copy(&cuid),
30215 core::mem::transmute_copy(&lpuidlist),
30216 core::mem::transmute_copy(&ulflags),
30217 )
30218 .into()
30219 }
30220 }
30221 unsafe extern "system" fn AdminProviders<
30222 Identity: IMsgServiceAdmin2_Impl,
30223 const OFFSET: isize,
30224 >(
30225 this: *mut core::ffi::c_void,
30226 lpuid: *mut MAPIUID,
30227 ulflags: u32,
30228 lppprovideradmin: *mut *mut core::ffi::c_void,
30229 ) -> windows_core::HRESULT {
30230 unsafe {
30231 let this: &Identity =
30232 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30233 IMsgServiceAdmin2_Impl::AdminProviders(
30234 this,
30235 core::mem::transmute_copy(&lpuid),
30236 core::mem::transmute_copy(&ulflags),
30237 core::mem::transmute_copy(&lppprovideradmin),
30238 )
30239 .into()
30240 }
30241 }
30242 unsafe extern "system" fn SetPrimaryIdentity<
30243 Identity: IMsgServiceAdmin2_Impl,
30244 const OFFSET: isize,
30245 >(
30246 this: *mut core::ffi::c_void,
30247 lpuid: *mut MAPIUID,
30248 ulflags: u32,
30249 ) -> windows_core::HRESULT {
30250 unsafe {
30251 let this: &Identity =
30252 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30253 IMsgServiceAdmin2_Impl::SetPrimaryIdentity(
30254 this,
30255 core::mem::transmute_copy(&lpuid),
30256 core::mem::transmute_copy(&ulflags),
30257 )
30258 .into()
30259 }
30260 }
30261 unsafe extern "system" fn GetProviderTable<
30262 Identity: IMsgServiceAdmin2_Impl,
30263 const OFFSET: isize,
30264 >(
30265 this: *mut core::ffi::c_void,
30266 ulflags: u32,
30267 lpptable: *mut *mut core::ffi::c_void,
30268 ) -> windows_core::HRESULT {
30269 unsafe {
30270 let this: &Identity =
30271 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30272 match IMsgServiceAdmin2_Impl::GetProviderTable(
30273 this,
30274 core::mem::transmute_copy(&ulflags),
30275 ) {
30276 Ok(ok__) => {
30277 lpptable.write(core::mem::transmute(ok__));
30278 windows_core::HRESULT(0)
30279 }
30280 Err(err) => err.into(),
30281 }
30282 }
30283 }
30284 unsafe extern "system" fn CreateMsgServiceEx<
30285 Identity: IMsgServiceAdmin2_Impl,
30286 const OFFSET: isize,
30287 >(
30288 this: *mut core::ffi::c_void,
30289 lpszservice: *mut i8,
30290 lpszdisplayname: *mut i8,
30291 uluiparam: usize,
30292 ulflags: u32,
30293 lpuidservice: *mut MAPIUID,
30294 ) -> windows_core::HRESULT {
30295 unsafe {
30296 let this: &Identity =
30297 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30298 IMsgServiceAdmin2_Impl::CreateMsgServiceEx(
30299 this,
30300 core::mem::transmute_copy(&lpszservice),
30301 core::mem::transmute_copy(&lpszdisplayname),
30302 core::mem::transmute_copy(&uluiparam),
30303 core::mem::transmute_copy(&ulflags),
30304 core::mem::transmute_copy(&lpuidservice),
30305 )
30306 .into()
30307 }
30308 }
30309 Self {
30310 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30311 GetLastError: GetLastError::<Identity, OFFSET>,
30312 GetMsgServiceTable: GetMsgServiceTable::<Identity, OFFSET>,
30313 CreateMsgService: CreateMsgService::<Identity, OFFSET>,
30314 DeleteMsgService: DeleteMsgService::<Identity, OFFSET>,
30315 CopyMsgService: CopyMsgService::<Identity, OFFSET>,
30316 RenameMsgService: RenameMsgService::<Identity, OFFSET>,
30317 ConfigureMsgService: ConfigureMsgService::<Identity, OFFSET>,
30318 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
30319 MsgServiceTransportOrder: MsgServiceTransportOrder::<Identity, OFFSET>,
30320 AdminProviders: AdminProviders::<Identity, OFFSET>,
30321 SetPrimaryIdentity: SetPrimaryIdentity::<Identity, OFFSET>,
30322 GetProviderTable: GetProviderTable::<Identity, OFFSET>,
30323 CreateMsgServiceEx: CreateMsgServiceEx::<Identity, OFFSET>,
30324 }
30325 }
30326 pub fn matches(iid: &windows_core::GUID) -> bool {
30327 iid == &<IMsgServiceAdmin2 as windows_core::Interface>::IID
30328 }
30329}
30330impl windows_core::RuntimeName for IMsgServiceAdmin2 {}
30331windows_core::imp::define_interface!(
30332 IMsgStore,
30333 IMsgStore_Vtbl,
30334 0x00020306_0000_0000_c000_000000000046
30335);
30336impl core::ops::Deref for IMsgStore {
30337 type Target = IMAPIProp;
30338 fn deref(&self) -> &Self::Target {
30339 unsafe { core::mem::transmute(self) }
30340 }
30341}
30342windows_core::imp::interface_hierarchy!(IMsgStore, windows_core::IUnknown, IMAPIProp);
30343impl IMsgStore {
30344 pub unsafe fn Advise<P3>(
30345 &self,
30346 cbentryid: u32,
30347 lpentryid: *mut ENTRYID,
30348 uleventmask: u32,
30349 lpadvisesink: P3,
30350 lpulconnection: *mut usize,
30351 ) -> windows_core::Result<()>
30352 where
30353 P3: windows_core::Param<IMAPIAdviseSink>,
30354 {
30355 unsafe {
30356 (windows_core::Interface::vtable(self).Advise)(
30357 windows_core::Interface::as_raw(self),
30358 cbentryid,
30359 lpentryid as _,
30360 uleventmask,
30361 lpadvisesink.param().abi(),
30362 lpulconnection as _,
30363 )
30364 .ok()
30365 }
30366 }
30367 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
30368 unsafe {
30369 (windows_core::Interface::vtable(self).Unadvise)(
30370 windows_core::Interface::as_raw(self),
30371 ulconnection,
30372 )
30373 .ok()
30374 }
30375 }
30376 pub unsafe fn CompareEntryIDs(
30377 &self,
30378 cbentryid1: u32,
30379 lpentryid1: *mut ENTRYID,
30380 cbentryid2: u32,
30381 lpentryid2: *mut ENTRYID,
30382 ulflags: u32,
30383 lpulresult: *mut u32,
30384 ) -> windows_core::Result<()> {
30385 unsafe {
30386 (windows_core::Interface::vtable(self).CompareEntryIDs)(
30387 windows_core::Interface::as_raw(self),
30388 cbentryid1,
30389 lpentryid1 as _,
30390 cbentryid2,
30391 lpentryid2 as _,
30392 ulflags,
30393 lpulresult as _,
30394 )
30395 .ok()
30396 }
30397 }
30398 pub unsafe fn OpenEntry(
30399 &self,
30400 cbentryid: u32,
30401 lpentryid: *mut ENTRYID,
30402 lpinterface: *mut windows_core::GUID,
30403 ulflags: u32,
30404 lpulobjtype: *mut u32,
30405 lppunk: *mut Option<windows_core::IUnknown>,
30406 ) -> windows_core::Result<()> {
30407 unsafe {
30408 (windows_core::Interface::vtable(self).OpenEntry)(
30409 windows_core::Interface::as_raw(self),
30410 cbentryid,
30411 lpentryid as _,
30412 lpinterface as _,
30413 ulflags,
30414 lpulobjtype as _,
30415 core::mem::transmute(lppunk),
30416 )
30417 .ok()
30418 }
30419 }
30420 pub unsafe fn SetReceiveFolder(
30421 &self,
30422 lpszmessageclass: *mut i8,
30423 ulflags: u32,
30424 cbentryid: u32,
30425 lpentryid: *mut ENTRYID,
30426 ) -> windows_core::Result<()> {
30427 unsafe {
30428 (windows_core::Interface::vtable(self).SetReceiveFolder)(
30429 windows_core::Interface::as_raw(self),
30430 lpszmessageclass as _,
30431 ulflags,
30432 cbentryid,
30433 lpentryid as _,
30434 )
30435 .ok()
30436 }
30437 }
30438 pub unsafe fn GetReceiveFolder(
30439 &self,
30440 lpszmessageclass: *mut i8,
30441 ulflags: u32,
30442 lpcbentryid: *mut u32,
30443 lppentryid: *mut *mut ENTRYID,
30444 lppszexplicitclass: *mut *mut i8,
30445 ) -> windows_core::Result<()> {
30446 unsafe {
30447 (windows_core::Interface::vtable(self).GetReceiveFolder)(
30448 windows_core::Interface::as_raw(self),
30449 lpszmessageclass as _,
30450 ulflags,
30451 lpcbentryid as _,
30452 lppentryid as _,
30453 lppszexplicitclass as _,
30454 )
30455 .ok()
30456 }
30457 }
30458 pub unsafe fn GetReceiveFolderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
30459 unsafe {
30460 let mut result__ = core::mem::zeroed();
30461 (windows_core::Interface::vtable(self).GetReceiveFolderTable)(
30462 windows_core::Interface::as_raw(self),
30463 ulflags,
30464 &mut result__,
30465 )
30466 .and_then(|| windows_core::Type::from_abi(result__))
30467 }
30468 }
30469 pub unsafe fn StoreLogoff(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
30470 unsafe {
30471 (windows_core::Interface::vtable(self).StoreLogoff)(
30472 windows_core::Interface::as_raw(self),
30473 lpulflags as _,
30474 )
30475 .ok()
30476 }
30477 }
30478 pub unsafe fn AbortSubmit(
30479 &self,
30480 cbentryid: u32,
30481 lpentryid: *mut ENTRYID,
30482 ulflags: u32,
30483 ) -> windows_core::Result<()> {
30484 unsafe {
30485 (windows_core::Interface::vtable(self).AbortSubmit)(
30486 windows_core::Interface::as_raw(self),
30487 cbentryid,
30488 lpentryid as _,
30489 ulflags,
30490 )
30491 .ok()
30492 }
30493 }
30494 pub unsafe fn GetOutgoingQueue(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
30495 unsafe {
30496 let mut result__ = core::mem::zeroed();
30497 (windows_core::Interface::vtable(self).GetOutgoingQueue)(
30498 windows_core::Interface::as_raw(self),
30499 ulflags,
30500 &mut result__,
30501 )
30502 .and_then(|| windows_core::Type::from_abi(result__))
30503 }
30504 }
30505 pub unsafe fn SetLockState<P0>(
30506 &self,
30507 lpmessage: P0,
30508 ullockstate: u32,
30509 ) -> windows_core::Result<()>
30510 where
30511 P0: windows_core::Param<IMessage>,
30512 {
30513 unsafe {
30514 (windows_core::Interface::vtable(self).SetLockState)(
30515 windows_core::Interface::as_raw(self),
30516 lpmessage.param().abi(),
30517 ullockstate,
30518 )
30519 .ok()
30520 }
30521 }
30522 pub unsafe fn FinishedMsg(
30523 &self,
30524 ulflags: u32,
30525 cbentryid: u32,
30526 lpentryid: *mut ENTRYID,
30527 ) -> windows_core::Result<()> {
30528 unsafe {
30529 (windows_core::Interface::vtable(self).FinishedMsg)(
30530 windows_core::Interface::as_raw(self),
30531 ulflags,
30532 cbentryid,
30533 lpentryid as _,
30534 )
30535 .ok()
30536 }
30537 }
30538 pub unsafe fn NotifyNewMail(
30539 &self,
30540 lpnotification: *mut NOTIFICATION,
30541 ) -> windows_core::Result<()> {
30542 unsafe {
30543 (windows_core::Interface::vtable(self).NotifyNewMail)(
30544 windows_core::Interface::as_raw(self),
30545 lpnotification as _,
30546 )
30547 .ok()
30548 }
30549 }
30550}
30551#[repr(C)]
30552pub struct IMsgStore_Vtbl {
30553 pub base__: IMAPIProp_Vtbl,
30554 pub Advise: unsafe extern "system" fn(
30555 *mut core::ffi::c_void,
30556 u32,
30557 *mut ENTRYID,
30558 u32,
30559 *mut core::ffi::c_void,
30560 *mut usize,
30561 ) -> windows_core::HRESULT,
30562 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
30563 pub CompareEntryIDs: unsafe extern "system" fn(
30564 *mut core::ffi::c_void,
30565 u32,
30566 *mut ENTRYID,
30567 u32,
30568 *mut ENTRYID,
30569 u32,
30570 *mut u32,
30571 ) -> windows_core::HRESULT,
30572 pub OpenEntry: unsafe extern "system" fn(
30573 *mut core::ffi::c_void,
30574 u32,
30575 *mut ENTRYID,
30576 *mut windows_core::GUID,
30577 u32,
30578 *mut u32,
30579 *mut *mut core::ffi::c_void,
30580 ) -> windows_core::HRESULT,
30581 pub SetReceiveFolder: unsafe extern "system" fn(
30582 *mut core::ffi::c_void,
30583 *mut i8,
30584 u32,
30585 u32,
30586 *mut ENTRYID,
30587 ) -> windows_core::HRESULT,
30588 pub GetReceiveFolder: unsafe extern "system" fn(
30589 *mut core::ffi::c_void,
30590 *mut i8,
30591 u32,
30592 *mut u32,
30593 *mut *mut ENTRYID,
30594 *mut *mut i8,
30595 ) -> windows_core::HRESULT,
30596 pub GetReceiveFolderTable: unsafe extern "system" fn(
30597 *mut core::ffi::c_void,
30598 u32,
30599 *mut *mut core::ffi::c_void,
30600 ) -> windows_core::HRESULT,
30601 pub StoreLogoff:
30602 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
30603 pub AbortSubmit: unsafe extern "system" fn(
30604 *mut core::ffi::c_void,
30605 u32,
30606 *mut ENTRYID,
30607 u32,
30608 ) -> windows_core::HRESULT,
30609 pub GetOutgoingQueue: unsafe extern "system" fn(
30610 *mut core::ffi::c_void,
30611 u32,
30612 *mut *mut core::ffi::c_void,
30613 ) -> windows_core::HRESULT,
30614 pub SetLockState: unsafe extern "system" fn(
30615 *mut core::ffi::c_void,
30616 *mut core::ffi::c_void,
30617 u32,
30618 ) -> windows_core::HRESULT,
30619 pub FinishedMsg: unsafe extern "system" fn(
30620 *mut core::ffi::c_void,
30621 u32,
30622 u32,
30623 *mut ENTRYID,
30624 ) -> windows_core::HRESULT,
30625 pub NotifyNewMail: unsafe extern "system" fn(
30626 *mut core::ffi::c_void,
30627 *mut NOTIFICATION,
30628 ) -> windows_core::HRESULT,
30629}
30630pub trait IMsgStore_Impl: IMAPIProp_Impl {
30631 fn Advise(
30632 &self,
30633 cbentryid: u32,
30634 lpentryid: *mut ENTRYID,
30635 uleventmask: u32,
30636 lpadvisesink: windows_core::Ref<'_, IMAPIAdviseSink>,
30637 lpulconnection: *mut usize,
30638 ) -> windows_core::Result<()>;
30639 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
30640 fn CompareEntryIDs(
30641 &self,
30642 cbentryid1: u32,
30643 lpentryid1: *mut ENTRYID,
30644 cbentryid2: u32,
30645 lpentryid2: *mut ENTRYID,
30646 ulflags: u32,
30647 lpulresult: *mut u32,
30648 ) -> windows_core::Result<()>;
30649 fn OpenEntry(
30650 &self,
30651 cbentryid: u32,
30652 lpentryid: *mut ENTRYID,
30653 lpinterface: *mut windows_core::GUID,
30654 ulflags: u32,
30655 lpulobjtype: *mut u32,
30656 lppunk: windows_core::OutRef<'_, windows_core::IUnknown>,
30657 ) -> windows_core::Result<()>;
30658 fn SetReceiveFolder(
30659 &self,
30660 lpszmessageclass: *mut i8,
30661 ulflags: u32,
30662 cbentryid: u32,
30663 lpentryid: *mut ENTRYID,
30664 ) -> windows_core::Result<()>;
30665 fn GetReceiveFolder(
30666 &self,
30667 lpszmessageclass: *mut i8,
30668 ulflags: u32,
30669 lpcbentryid: *mut u32,
30670 lppentryid: *mut *mut ENTRYID,
30671 lppszexplicitclass: *mut *mut i8,
30672 ) -> windows_core::Result<()>;
30673 fn GetReceiveFolderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
30674 fn StoreLogoff(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
30675 fn AbortSubmit(
30676 &self,
30677 cbentryid: u32,
30678 lpentryid: *mut ENTRYID,
30679 ulflags: u32,
30680 ) -> windows_core::Result<()>;
30681 fn GetOutgoingQueue(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
30682 fn SetLockState(
30683 &self,
30684 lpmessage: windows_core::Ref<'_, IMessage>,
30685 ullockstate: u32,
30686 ) -> windows_core::Result<()>;
30687 fn FinishedMsg(
30688 &self,
30689 ulflags: u32,
30690 cbentryid: u32,
30691 lpentryid: *mut ENTRYID,
30692 ) -> windows_core::Result<()>;
30693 fn NotifyNewMail(&self, lpnotification: *mut NOTIFICATION) -> windows_core::Result<()>;
30694}
30695impl IMsgStore_Vtbl {
30696 pub const fn new<Identity: IMsgStore_Impl, const OFFSET: isize>() -> Self {
30697 unsafe extern "system" fn Advise<Identity: IMsgStore_Impl, const OFFSET: isize>(
30698 this: *mut core::ffi::c_void,
30699 cbentryid: u32,
30700 lpentryid: *mut ENTRYID,
30701 uleventmask: u32,
30702 lpadvisesink: *mut core::ffi::c_void,
30703 lpulconnection: *mut usize,
30704 ) -> windows_core::HRESULT {
30705 unsafe {
30706 let this: &Identity =
30707 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30708 IMsgStore_Impl::Advise(
30709 this,
30710 core::mem::transmute_copy(&cbentryid),
30711 core::mem::transmute_copy(&lpentryid),
30712 core::mem::transmute_copy(&uleventmask),
30713 core::mem::transmute_copy(&lpadvisesink),
30714 core::mem::transmute_copy(&lpulconnection),
30715 )
30716 .into()
30717 }
30718 }
30719 unsafe extern "system" fn Unadvise<Identity: IMsgStore_Impl, const OFFSET: isize>(
30720 this: *mut core::ffi::c_void,
30721 ulconnection: usize,
30722 ) -> windows_core::HRESULT {
30723 unsafe {
30724 let this: &Identity =
30725 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30726 IMsgStore_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
30727 }
30728 }
30729 unsafe extern "system" fn CompareEntryIDs<Identity: IMsgStore_Impl, const OFFSET: isize>(
30730 this: *mut core::ffi::c_void,
30731 cbentryid1: u32,
30732 lpentryid1: *mut ENTRYID,
30733 cbentryid2: u32,
30734 lpentryid2: *mut ENTRYID,
30735 ulflags: u32,
30736 lpulresult: *mut u32,
30737 ) -> windows_core::HRESULT {
30738 unsafe {
30739 let this: &Identity =
30740 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30741 IMsgStore_Impl::CompareEntryIDs(
30742 this,
30743 core::mem::transmute_copy(&cbentryid1),
30744 core::mem::transmute_copy(&lpentryid1),
30745 core::mem::transmute_copy(&cbentryid2),
30746 core::mem::transmute_copy(&lpentryid2),
30747 core::mem::transmute_copy(&ulflags),
30748 core::mem::transmute_copy(&lpulresult),
30749 )
30750 .into()
30751 }
30752 }
30753 unsafe extern "system" fn OpenEntry<Identity: IMsgStore_Impl, const OFFSET: isize>(
30754 this: *mut core::ffi::c_void,
30755 cbentryid: u32,
30756 lpentryid: *mut ENTRYID,
30757 lpinterface: *mut windows_core::GUID,
30758 ulflags: u32,
30759 lpulobjtype: *mut u32,
30760 lppunk: *mut *mut core::ffi::c_void,
30761 ) -> windows_core::HRESULT {
30762 unsafe {
30763 let this: &Identity =
30764 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30765 IMsgStore_Impl::OpenEntry(
30766 this,
30767 core::mem::transmute_copy(&cbentryid),
30768 core::mem::transmute_copy(&lpentryid),
30769 core::mem::transmute_copy(&lpinterface),
30770 core::mem::transmute_copy(&ulflags),
30771 core::mem::transmute_copy(&lpulobjtype),
30772 core::mem::transmute_copy(&lppunk),
30773 )
30774 .into()
30775 }
30776 }
30777 unsafe extern "system" fn SetReceiveFolder<
30778 Identity: IMsgStore_Impl,
30779 const OFFSET: isize,
30780 >(
30781 this: *mut core::ffi::c_void,
30782 lpszmessageclass: *mut i8,
30783 ulflags: u32,
30784 cbentryid: u32,
30785 lpentryid: *mut ENTRYID,
30786 ) -> windows_core::HRESULT {
30787 unsafe {
30788 let this: &Identity =
30789 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30790 IMsgStore_Impl::SetReceiveFolder(
30791 this,
30792 core::mem::transmute_copy(&lpszmessageclass),
30793 core::mem::transmute_copy(&ulflags),
30794 core::mem::transmute_copy(&cbentryid),
30795 core::mem::transmute_copy(&lpentryid),
30796 )
30797 .into()
30798 }
30799 }
30800 unsafe extern "system" fn GetReceiveFolder<
30801 Identity: IMsgStore_Impl,
30802 const OFFSET: isize,
30803 >(
30804 this: *mut core::ffi::c_void,
30805 lpszmessageclass: *mut i8,
30806 ulflags: u32,
30807 lpcbentryid: *mut u32,
30808 lppentryid: *mut *mut ENTRYID,
30809 lppszexplicitclass: *mut *mut i8,
30810 ) -> windows_core::HRESULT {
30811 unsafe {
30812 let this: &Identity =
30813 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30814 IMsgStore_Impl::GetReceiveFolder(
30815 this,
30816 core::mem::transmute_copy(&lpszmessageclass),
30817 core::mem::transmute_copy(&ulflags),
30818 core::mem::transmute_copy(&lpcbentryid),
30819 core::mem::transmute_copy(&lppentryid),
30820 core::mem::transmute_copy(&lppszexplicitclass),
30821 )
30822 .into()
30823 }
30824 }
30825 unsafe extern "system" fn GetReceiveFolderTable<
30826 Identity: IMsgStore_Impl,
30827 const OFFSET: isize,
30828 >(
30829 this: *mut core::ffi::c_void,
30830 ulflags: u32,
30831 lpptable: *mut *mut core::ffi::c_void,
30832 ) -> windows_core::HRESULT {
30833 unsafe {
30834 let this: &Identity =
30835 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30836 match IMsgStore_Impl::GetReceiveFolderTable(
30837 this,
30838 core::mem::transmute_copy(&ulflags),
30839 ) {
30840 Ok(ok__) => {
30841 lpptable.write(core::mem::transmute(ok__));
30842 windows_core::HRESULT(0)
30843 }
30844 Err(err) => err.into(),
30845 }
30846 }
30847 }
30848 unsafe extern "system" fn StoreLogoff<Identity: IMsgStore_Impl, const OFFSET: isize>(
30849 this: *mut core::ffi::c_void,
30850 lpulflags: *mut u32,
30851 ) -> windows_core::HRESULT {
30852 unsafe {
30853 let this: &Identity =
30854 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30855 IMsgStore_Impl::StoreLogoff(this, core::mem::transmute_copy(&lpulflags)).into()
30856 }
30857 }
30858 unsafe extern "system" fn AbortSubmit<Identity: IMsgStore_Impl, const OFFSET: isize>(
30859 this: *mut core::ffi::c_void,
30860 cbentryid: u32,
30861 lpentryid: *mut ENTRYID,
30862 ulflags: u32,
30863 ) -> windows_core::HRESULT {
30864 unsafe {
30865 let this: &Identity =
30866 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30867 IMsgStore_Impl::AbortSubmit(
30868 this,
30869 core::mem::transmute_copy(&cbentryid),
30870 core::mem::transmute_copy(&lpentryid),
30871 core::mem::transmute_copy(&ulflags),
30872 )
30873 .into()
30874 }
30875 }
30876 unsafe extern "system" fn GetOutgoingQueue<
30877 Identity: IMsgStore_Impl,
30878 const OFFSET: isize,
30879 >(
30880 this: *mut core::ffi::c_void,
30881 ulflags: u32,
30882 lpptable: *mut *mut core::ffi::c_void,
30883 ) -> windows_core::HRESULT {
30884 unsafe {
30885 let this: &Identity =
30886 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30887 match IMsgStore_Impl::GetOutgoingQueue(this, core::mem::transmute_copy(&ulflags)) {
30888 Ok(ok__) => {
30889 lpptable.write(core::mem::transmute(ok__));
30890 windows_core::HRESULT(0)
30891 }
30892 Err(err) => err.into(),
30893 }
30894 }
30895 }
30896 unsafe extern "system" fn SetLockState<Identity: IMsgStore_Impl, const OFFSET: isize>(
30897 this: *mut core::ffi::c_void,
30898 lpmessage: *mut core::ffi::c_void,
30899 ullockstate: u32,
30900 ) -> windows_core::HRESULT {
30901 unsafe {
30902 let this: &Identity =
30903 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30904 IMsgStore_Impl::SetLockState(
30905 this,
30906 core::mem::transmute_copy(&lpmessage),
30907 core::mem::transmute_copy(&ullockstate),
30908 )
30909 .into()
30910 }
30911 }
30912 unsafe extern "system" fn FinishedMsg<Identity: IMsgStore_Impl, const OFFSET: isize>(
30913 this: *mut core::ffi::c_void,
30914 ulflags: u32,
30915 cbentryid: u32,
30916 lpentryid: *mut ENTRYID,
30917 ) -> windows_core::HRESULT {
30918 unsafe {
30919 let this: &Identity =
30920 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30921 IMsgStore_Impl::FinishedMsg(
30922 this,
30923 core::mem::transmute_copy(&ulflags),
30924 core::mem::transmute_copy(&cbentryid),
30925 core::mem::transmute_copy(&lpentryid),
30926 )
30927 .into()
30928 }
30929 }
30930 unsafe extern "system" fn NotifyNewMail<Identity: IMsgStore_Impl, const OFFSET: isize>(
30931 this: *mut core::ffi::c_void,
30932 lpnotification: *mut NOTIFICATION,
30933 ) -> windows_core::HRESULT {
30934 unsafe {
30935 let this: &Identity =
30936 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30937 IMsgStore_Impl::NotifyNewMail(this, core::mem::transmute_copy(&lpnotification))
30938 .into()
30939 }
30940 }
30941 Self {
30942 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
30943 Advise: Advise::<Identity, OFFSET>,
30944 Unadvise: Unadvise::<Identity, OFFSET>,
30945 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
30946 OpenEntry: OpenEntry::<Identity, OFFSET>,
30947 SetReceiveFolder: SetReceiveFolder::<Identity, OFFSET>,
30948 GetReceiveFolder: GetReceiveFolder::<Identity, OFFSET>,
30949 GetReceiveFolderTable: GetReceiveFolderTable::<Identity, OFFSET>,
30950 StoreLogoff: StoreLogoff::<Identity, OFFSET>,
30951 AbortSubmit: AbortSubmit::<Identity, OFFSET>,
30952 GetOutgoingQueue: GetOutgoingQueue::<Identity, OFFSET>,
30953 SetLockState: SetLockState::<Identity, OFFSET>,
30954 FinishedMsg: FinishedMsg::<Identity, OFFSET>,
30955 NotifyNewMail: NotifyNewMail::<Identity, OFFSET>,
30956 }
30957 }
30958 pub fn matches(iid: &windows_core::GUID) -> bool {
30959 iid == &<IMsgStore as windows_core::Interface>::IID
30960 || iid == &<IMAPIProp as windows_core::Interface>::IID
30961 }
30962}
30963impl windows_core::RuntimeName for IMsgStore {}
30964pub const IMsgStore_AbortSubmit: METHODS = METHODS(69i32);
30965pub const IMsgStore_Advise: METHODS = METHODS(61i32);
30966pub const IMsgStore_CompareEntryIDs: METHODS = METHODS(63i32);
30967pub const IMsgStore_FinishedMsg: METHODS = METHODS(72i32);
30968pub const IMsgStore_GetOutgoingQueue: METHODS = METHODS(70i32);
30969pub const IMsgStore_GetReceiveFolder: METHODS = METHODS(66i32);
30970pub const IMsgStore_GetReceiveFolderTable: METHODS = METHODS(67i32);
30971pub const IMsgStore_NotifyNewMail: METHODS = METHODS(73i32);
30972pub const IMsgStore_OpenEntry: METHODS = METHODS(64i32);
30973pub const IMsgStore_SetLockState: METHODS = METHODS(71i32);
30974pub const IMsgStore_SetReceiveFolder: METHODS = METHODS(65i32);
30975pub const IMsgStore_StoreLogoff: METHODS = METHODS(68i32);
30976pub const IMsgStore_Unadvise: METHODS = METHODS(62i32);
30977#[repr(C)]
30978#[derive(Clone, Copy, Debug, PartialEq)]
30979pub struct INETCSETINFO {
30980 pub szName: [i8; 128],
30981 pub hCharset: *mut HCHARSET__,
30982 pub cpiWindows: u32,
30983 pub cpiInternet: u32,
30984 pub dwReserved1: u32,
30985}
30986impl Default for INETCSETINFO {
30987 fn default() -> Self {
30988 unsafe { core::mem::zeroed() }
30989 }
30990}
30991#[repr(transparent)]
30992#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
30993pub struct INETLANGMASK(pub i32);
30994#[repr(C)]
30995#[derive(Clone, Copy, Debug, PartialEq)]
30996pub struct INTTRACEENTRY {
30997 pub lAction: i32,
30998 pub ftArrivalTime: windows::Win32::Foundation::FILETIME,
30999 pub ftDeferredTime: windows::Win32::Foundation::FILETIME,
31000 pub rgchADMDName: [i8; 20],
31001 pub rgchCountryName: [i8; 4],
31002 pub rgchPRMDId: [i8; 20],
31003 pub rgchAttADMDName: [i8; 20],
31004 pub rgchAttCountryName: [i8; 4],
31005 pub rgchAttPRMDId: [i8; 20],
31006 pub rgchMTAName: [i8; 36],
31007 pub rgchAttMTAName: [i8; 35],
31008 pub bAdditionalActions: u8,
31009}
31010impl Default for INTTRACEENTRY {
31011 fn default() -> Self {
31012 unsafe { core::mem::zeroed() }
31013 }
31014}
31015#[repr(C)]
31016#[derive(Clone, Copy, Debug, PartialEq)]
31017pub struct INTTRACEINFO {
31018 pub cEntries: u32,
31019 pub rgIntTraceEntry: [INTTRACEENTRY; 1],
31020}
31021impl Default for INTTRACEINFO {
31022 fn default() -> Self {
31023 unsafe { core::mem::zeroed() }
31024 }
31025}
31026windows_core::imp::define_interface!(
31027 IOlkAccount,
31028 IOlkAccount_Vtbl,
31029 0x9240a6d2_af41_11d2_8c3b_00104b2a6676
31030);
31031impl core::ops::Deref for IOlkAccount {
31032 type Target = IOlkErrorUnknown;
31033 fn deref(&self) -> &Self::Target {
31034 unsafe { core::mem::transmute(self) }
31035 }
31036}
31037windows_core::imp::interface_hierarchy!(IOlkAccount, windows_core::IUnknown, IOlkErrorUnknown);
31038impl IOlkAccount {
31039 pub unsafe fn PlaceHolder1(&self) -> windows_core::Result<()> {
31040 unsafe {
31041 (windows_core::Interface::vtable(self).PlaceHolder1)(windows_core::Interface::as_raw(
31042 self,
31043 ))
31044 .ok()
31045 }
31046 }
31047 pub unsafe fn PlaceHolder2(&self) -> windows_core::Result<()> {
31048 unsafe {
31049 (windows_core::Interface::vtable(self).PlaceHolder2)(windows_core::Interface::as_raw(
31050 self,
31051 ))
31052 .ok()
31053 }
31054 }
31055 pub unsafe fn PlaceHolder3(&self) -> windows_core::Result<()> {
31056 unsafe {
31057 (windows_core::Interface::vtable(self).PlaceHolder3)(windows_core::Interface::as_raw(
31058 self,
31059 ))
31060 .ok()
31061 }
31062 }
31063 pub unsafe fn PlaceHolder4(&self) -> windows_core::Result<()> {
31064 unsafe {
31065 (windows_core::Interface::vtable(self).PlaceHolder4)(windows_core::Interface::as_raw(
31066 self,
31067 ))
31068 .ok()
31069 }
31070 }
31071 pub unsafe fn PlaceHolder5(&self) -> windows_core::Result<()> {
31072 unsafe {
31073 (windows_core::Interface::vtable(self).PlaceHolder5)(windows_core::Interface::as_raw(
31074 self,
31075 ))
31076 .ok()
31077 }
31078 }
31079 pub unsafe fn PlaceHolder6(&self) -> windows_core::Result<()> {
31080 unsafe {
31081 (windows_core::Interface::vtable(self).PlaceHolder6)(windows_core::Interface::as_raw(
31082 self,
31083 ))
31084 .ok()
31085 }
31086 }
31087 pub unsafe fn GetAccountInfo(
31088 &self,
31089 pclsidtype: *mut windows_core::GUID,
31090 pccategories: *mut u32,
31091 prgclsidcategory: *mut *mut windows_core::GUID,
31092 ) -> windows_core::Result<()> {
31093 unsafe {
31094 (windows_core::Interface::vtable(self).GetAccountInfo)(
31095 windows_core::Interface::as_raw(self),
31096 pclsidtype as _,
31097 pccategories as _,
31098 prgclsidcategory as _,
31099 )
31100 .ok()
31101 }
31102 }
31103 pub unsafe fn GetPropA(
31104 &self,
31105 dwprop: u32,
31106 pvar: *mut ACCT_VARIANT,
31107 ) -> windows_core::Result<()> {
31108 unsafe {
31109 (windows_core::Interface::vtable(self).GetPropA)(
31110 windows_core::Interface::as_raw(self),
31111 dwprop,
31112 pvar as _,
31113 )
31114 .ok()
31115 }
31116 }
31117 pub unsafe fn SetPropA(
31118 &self,
31119 dwprop: u32,
31120 pvar: *mut ACCT_VARIANT,
31121 ) -> windows_core::Result<()> {
31122 unsafe {
31123 (windows_core::Interface::vtable(self).SetPropA)(
31124 windows_core::Interface::as_raw(self),
31125 dwprop,
31126 pvar as _,
31127 )
31128 .ok()
31129 }
31130 }
31131 pub unsafe fn PlaceHolder7(&self) -> windows_core::Result<()> {
31132 unsafe {
31133 (windows_core::Interface::vtable(self).PlaceHolder7)(windows_core::Interface::as_raw(
31134 self,
31135 ))
31136 .ok()
31137 }
31138 }
31139 pub unsafe fn PlaceHolder8(&self) -> windows_core::Result<()> {
31140 unsafe {
31141 (windows_core::Interface::vtable(self).PlaceHolder8)(windows_core::Interface::as_raw(
31142 self,
31143 ))
31144 .ok()
31145 }
31146 }
31147 pub unsafe fn PlaceHolder9(&self) -> windows_core::Result<()> {
31148 unsafe {
31149 (windows_core::Interface::vtable(self).PlaceHolder9)(windows_core::Interface::as_raw(
31150 self,
31151 ))
31152 .ok()
31153 }
31154 }
31155 pub unsafe fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()> {
31156 unsafe {
31157 (windows_core::Interface::vtable(self).FreeMemory)(
31158 windows_core::Interface::as_raw(self),
31159 pv as _,
31160 )
31161 .ok()
31162 }
31163 }
31164 pub unsafe fn PlaceHolder10(&self) -> windows_core::Result<()> {
31165 unsafe {
31166 (windows_core::Interface::vtable(self).PlaceHolder10)(windows_core::Interface::as_raw(
31167 self,
31168 ))
31169 .ok()
31170 }
31171 }
31172 pub unsafe fn SaveChanges(&self, dwflags: u32) -> windows_core::Result<()> {
31173 unsafe {
31174 (windows_core::Interface::vtable(self).SaveChanges)(
31175 windows_core::Interface::as_raw(self),
31176 dwflags,
31177 )
31178 .ok()
31179 }
31180 }
31181}
31182#[repr(C)]
31183pub struct IOlkAccount_Vtbl {
31184 pub base__: IOlkErrorUnknown_Vtbl,
31185 pub PlaceHolder1: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31186 pub PlaceHolder2: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31187 pub PlaceHolder3: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31188 pub PlaceHolder4: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31189 pub PlaceHolder5: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31190 pub PlaceHolder6: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31191 pub GetAccountInfo: unsafe extern "system" fn(
31192 *mut core::ffi::c_void,
31193 *mut windows_core::GUID,
31194 *mut u32,
31195 *mut *mut windows_core::GUID,
31196 ) -> windows_core::HRESULT,
31197 pub GetPropA: unsafe extern "system" fn(
31198 *mut core::ffi::c_void,
31199 u32,
31200 *mut ACCT_VARIANT,
31201 ) -> windows_core::HRESULT,
31202 pub SetPropA: unsafe extern "system" fn(
31203 *mut core::ffi::c_void,
31204 u32,
31205 *mut ACCT_VARIANT,
31206 ) -> windows_core::HRESULT,
31207 pub PlaceHolder7: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31208 pub PlaceHolder8: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31209 pub PlaceHolder9: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31210 pub FreeMemory:
31211 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
31212 pub PlaceHolder10: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31213 pub SaveChanges:
31214 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
31215}
31216pub trait IOlkAccount_Impl: IOlkErrorUnknown_Impl {
31217 fn PlaceHolder1(&self) -> windows_core::Result<()>;
31218 fn PlaceHolder2(&self) -> windows_core::Result<()>;
31219 fn PlaceHolder3(&self) -> windows_core::Result<()>;
31220 fn PlaceHolder4(&self) -> windows_core::Result<()>;
31221 fn PlaceHolder5(&self) -> windows_core::Result<()>;
31222 fn PlaceHolder6(&self) -> windows_core::Result<()>;
31223 fn GetAccountInfo(
31224 &self,
31225 pclsidtype: *mut windows_core::GUID,
31226 pccategories: *mut u32,
31227 prgclsidcategory: *mut *mut windows_core::GUID,
31228 ) -> windows_core::Result<()>;
31229 fn GetPropA(&self, dwprop: u32, pvar: *mut ACCT_VARIANT) -> windows_core::Result<()>;
31230 fn SetPropA(&self, dwprop: u32, pvar: *mut ACCT_VARIANT) -> windows_core::Result<()>;
31231 fn PlaceHolder7(&self) -> windows_core::Result<()>;
31232 fn PlaceHolder8(&self) -> windows_core::Result<()>;
31233 fn PlaceHolder9(&self) -> windows_core::Result<()>;
31234 fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()>;
31235 fn PlaceHolder10(&self) -> windows_core::Result<()>;
31236 fn SaveChanges(&self, dwflags: u32) -> windows_core::Result<()>;
31237}
31238impl IOlkAccount_Vtbl {
31239 pub const fn new<Identity: IOlkAccount_Impl, const OFFSET: isize>() -> Self {
31240 unsafe extern "system" fn PlaceHolder1<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31241 this: *mut core::ffi::c_void,
31242 ) -> windows_core::HRESULT {
31243 unsafe {
31244 let this: &Identity =
31245 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31246 IOlkAccount_Impl::PlaceHolder1(this).into()
31247 }
31248 }
31249 unsafe extern "system" fn PlaceHolder2<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31250 this: *mut core::ffi::c_void,
31251 ) -> windows_core::HRESULT {
31252 unsafe {
31253 let this: &Identity =
31254 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31255 IOlkAccount_Impl::PlaceHolder2(this).into()
31256 }
31257 }
31258 unsafe extern "system" fn PlaceHolder3<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31259 this: *mut core::ffi::c_void,
31260 ) -> windows_core::HRESULT {
31261 unsafe {
31262 let this: &Identity =
31263 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31264 IOlkAccount_Impl::PlaceHolder3(this).into()
31265 }
31266 }
31267 unsafe extern "system" fn PlaceHolder4<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31268 this: *mut core::ffi::c_void,
31269 ) -> windows_core::HRESULT {
31270 unsafe {
31271 let this: &Identity =
31272 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31273 IOlkAccount_Impl::PlaceHolder4(this).into()
31274 }
31275 }
31276 unsafe extern "system" fn PlaceHolder5<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31277 this: *mut core::ffi::c_void,
31278 ) -> windows_core::HRESULT {
31279 unsafe {
31280 let this: &Identity =
31281 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31282 IOlkAccount_Impl::PlaceHolder5(this).into()
31283 }
31284 }
31285 unsafe extern "system" fn PlaceHolder6<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31286 this: *mut core::ffi::c_void,
31287 ) -> windows_core::HRESULT {
31288 unsafe {
31289 let this: &Identity =
31290 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31291 IOlkAccount_Impl::PlaceHolder6(this).into()
31292 }
31293 }
31294 unsafe extern "system" fn GetAccountInfo<
31295 Identity: IOlkAccount_Impl,
31296 const OFFSET: isize,
31297 >(
31298 this: *mut core::ffi::c_void,
31299 pclsidtype: *mut windows_core::GUID,
31300 pccategories: *mut u32,
31301 prgclsidcategory: *mut *mut windows_core::GUID,
31302 ) -> windows_core::HRESULT {
31303 unsafe {
31304 let this: &Identity =
31305 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31306 IOlkAccount_Impl::GetAccountInfo(
31307 this,
31308 core::mem::transmute_copy(&pclsidtype),
31309 core::mem::transmute_copy(&pccategories),
31310 core::mem::transmute_copy(&prgclsidcategory),
31311 )
31312 .into()
31313 }
31314 }
31315 unsafe extern "system" fn GetPropA<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31316 this: *mut core::ffi::c_void,
31317 dwprop: u32,
31318 pvar: *mut ACCT_VARIANT,
31319 ) -> windows_core::HRESULT {
31320 unsafe {
31321 let this: &Identity =
31322 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31323 IOlkAccount_Impl::GetPropA(
31324 this,
31325 core::mem::transmute_copy(&dwprop),
31326 core::mem::transmute_copy(&pvar),
31327 )
31328 .into()
31329 }
31330 }
31331 unsafe extern "system" fn SetPropA<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31332 this: *mut core::ffi::c_void,
31333 dwprop: u32,
31334 pvar: *mut ACCT_VARIANT,
31335 ) -> windows_core::HRESULT {
31336 unsafe {
31337 let this: &Identity =
31338 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31339 IOlkAccount_Impl::SetPropA(
31340 this,
31341 core::mem::transmute_copy(&dwprop),
31342 core::mem::transmute_copy(&pvar),
31343 )
31344 .into()
31345 }
31346 }
31347 unsafe extern "system" fn PlaceHolder7<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31348 this: *mut core::ffi::c_void,
31349 ) -> windows_core::HRESULT {
31350 unsafe {
31351 let this: &Identity =
31352 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31353 IOlkAccount_Impl::PlaceHolder7(this).into()
31354 }
31355 }
31356 unsafe extern "system" fn PlaceHolder8<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31357 this: *mut core::ffi::c_void,
31358 ) -> windows_core::HRESULT {
31359 unsafe {
31360 let this: &Identity =
31361 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31362 IOlkAccount_Impl::PlaceHolder8(this).into()
31363 }
31364 }
31365 unsafe extern "system" fn PlaceHolder9<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31366 this: *mut core::ffi::c_void,
31367 ) -> windows_core::HRESULT {
31368 unsafe {
31369 let this: &Identity =
31370 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31371 IOlkAccount_Impl::PlaceHolder9(this).into()
31372 }
31373 }
31374 unsafe extern "system" fn FreeMemory<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31375 this: *mut core::ffi::c_void,
31376 pv: *mut u8,
31377 ) -> windows_core::HRESULT {
31378 unsafe {
31379 let this: &Identity =
31380 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31381 IOlkAccount_Impl::FreeMemory(this, core::mem::transmute_copy(&pv)).into()
31382 }
31383 }
31384 unsafe extern "system" fn PlaceHolder10<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31385 this: *mut core::ffi::c_void,
31386 ) -> windows_core::HRESULT {
31387 unsafe {
31388 let this: &Identity =
31389 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31390 IOlkAccount_Impl::PlaceHolder10(this).into()
31391 }
31392 }
31393 unsafe extern "system" fn SaveChanges<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31394 this: *mut core::ffi::c_void,
31395 dwflags: u32,
31396 ) -> windows_core::HRESULT {
31397 unsafe {
31398 let this: &Identity =
31399 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31400 IOlkAccount_Impl::SaveChanges(this, core::mem::transmute_copy(&dwflags)).into()
31401 }
31402 }
31403 Self {
31404 base__: IOlkErrorUnknown_Vtbl::new::<Identity, OFFSET>(),
31405 PlaceHolder1: PlaceHolder1::<Identity, OFFSET>,
31406 PlaceHolder2: PlaceHolder2::<Identity, OFFSET>,
31407 PlaceHolder3: PlaceHolder3::<Identity, OFFSET>,
31408 PlaceHolder4: PlaceHolder4::<Identity, OFFSET>,
31409 PlaceHolder5: PlaceHolder5::<Identity, OFFSET>,
31410 PlaceHolder6: PlaceHolder6::<Identity, OFFSET>,
31411 GetAccountInfo: GetAccountInfo::<Identity, OFFSET>,
31412 GetPropA: GetPropA::<Identity, OFFSET>,
31413 SetPropA: SetPropA::<Identity, OFFSET>,
31414 PlaceHolder7: PlaceHolder7::<Identity, OFFSET>,
31415 PlaceHolder8: PlaceHolder8::<Identity, OFFSET>,
31416 PlaceHolder9: PlaceHolder9::<Identity, OFFSET>,
31417 FreeMemory: FreeMemory::<Identity, OFFSET>,
31418 PlaceHolder10: PlaceHolder10::<Identity, OFFSET>,
31419 SaveChanges: SaveChanges::<Identity, OFFSET>,
31420 }
31421 }
31422 pub fn matches(iid: &windows_core::GUID) -> bool {
31423 iid == &<IOlkAccount as windows_core::Interface>::IID
31424 || iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
31425 }
31426}
31427impl windows_core::RuntimeName for IOlkAccount {}
31428windows_core::imp::define_interface!(
31429 IOlkAccountHelper,
31430 IOlkAccountHelper_Vtbl,
31431 0x9240a6cb_af41_11d2_8c3b_00104b2a6676
31432);
31433windows_core::imp::interface_hierarchy!(IOlkAccountHelper, windows_core::IUnknown);
31434impl IOlkAccountHelper {
31435 pub unsafe fn PlaceHolder1(&self, param0: *mut core::ffi::c_void) -> windows_core::Result<()> {
31436 unsafe {
31437 (windows_core::Interface::vtable(self).PlaceHolder1)(
31438 windows_core::Interface::as_raw(self),
31439 param0 as _,
31440 )
31441 .ok()
31442 }
31443 }
31444 pub unsafe fn GetIdentity<P0>(
31445 &self,
31446 pwszidentity: P0,
31447 pcch: *mut u32,
31448 ) -> windows_core::Result<()>
31449 where
31450 P0: windows_core::Param<windows_core::PCWSTR>,
31451 {
31452 unsafe {
31453 (windows_core::Interface::vtable(self).GetIdentity)(
31454 windows_core::Interface::as_raw(self),
31455 pwszidentity.param().abi(),
31456 pcch as _,
31457 )
31458 .ok()
31459 }
31460 }
31461 pub unsafe fn GetMapiSession(&self) -> windows_core::Result<windows_core::IUnknown> {
31462 unsafe {
31463 let mut result__ = core::mem::zeroed();
31464 (windows_core::Interface::vtable(self).GetMapiSession)(
31465 windows_core::Interface::as_raw(self),
31466 &mut result__,
31467 )
31468 .and_then(|| windows_core::Type::from_abi(result__))
31469 }
31470 }
31471 pub unsafe fn HandsOffSession(&self) -> windows_core::Result<()> {
31472 unsafe {
31473 (windows_core::Interface::vtable(self).HandsOffSession)(
31474 windows_core::Interface::as_raw(self),
31475 )
31476 .ok()
31477 }
31478 }
31479}
31480#[repr(C)]
31481pub struct IOlkAccountHelper_Vtbl {
31482 pub base__: windows_core::IUnknown_Vtbl,
31483 pub PlaceHolder1: unsafe extern "system" fn(
31484 *mut core::ffi::c_void,
31485 *mut core::ffi::c_void,
31486 ) -> windows_core::HRESULT,
31487 pub GetIdentity: unsafe extern "system" fn(
31488 *mut core::ffi::c_void,
31489 windows_core::PCWSTR,
31490 *mut u32,
31491 ) -> windows_core::HRESULT,
31492 pub GetMapiSession: unsafe extern "system" fn(
31493 *mut core::ffi::c_void,
31494 *mut *mut core::ffi::c_void,
31495 ) -> windows_core::HRESULT,
31496 pub HandsOffSession: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31497}
31498pub trait IOlkAccountHelper_Impl: windows_core::IUnknownImpl {
31499 fn PlaceHolder1(&self, param0: *mut core::ffi::c_void) -> windows_core::Result<()>;
31500 fn GetIdentity(
31501 &self,
31502 pwszidentity: &windows_core::PCWSTR,
31503 pcch: *mut u32,
31504 ) -> windows_core::Result<()>;
31505 fn GetMapiSession(&self) -> windows_core::Result<windows_core::IUnknown>;
31506 fn HandsOffSession(&self) -> windows_core::Result<()>;
31507}
31508impl IOlkAccountHelper_Vtbl {
31509 pub const fn new<Identity: IOlkAccountHelper_Impl, const OFFSET: isize>() -> Self {
31510 unsafe extern "system" fn PlaceHolder1<
31511 Identity: IOlkAccountHelper_Impl,
31512 const OFFSET: isize,
31513 >(
31514 this: *mut core::ffi::c_void,
31515 param0: *mut core::ffi::c_void,
31516 ) -> windows_core::HRESULT {
31517 unsafe {
31518 let this: &Identity =
31519 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31520 IOlkAccountHelper_Impl::PlaceHolder1(this, core::mem::transmute_copy(¶m0))
31521 .into()
31522 }
31523 }
31524 unsafe extern "system" fn GetIdentity<
31525 Identity: IOlkAccountHelper_Impl,
31526 const OFFSET: isize,
31527 >(
31528 this: *mut core::ffi::c_void,
31529 pwszidentity: windows_core::PCWSTR,
31530 pcch: *mut u32,
31531 ) -> windows_core::HRESULT {
31532 unsafe {
31533 let this: &Identity =
31534 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31535 IOlkAccountHelper_Impl::GetIdentity(
31536 this,
31537 core::mem::transmute(&pwszidentity),
31538 core::mem::transmute_copy(&pcch),
31539 )
31540 .into()
31541 }
31542 }
31543 unsafe extern "system" fn GetMapiSession<
31544 Identity: IOlkAccountHelper_Impl,
31545 const OFFSET: isize,
31546 >(
31547 this: *mut core::ffi::c_void,
31548 ppmsess: *mut *mut core::ffi::c_void,
31549 ) -> windows_core::HRESULT {
31550 unsafe {
31551 let this: &Identity =
31552 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31553 match IOlkAccountHelper_Impl::GetMapiSession(this) {
31554 Ok(ok__) => {
31555 ppmsess.write(core::mem::transmute(ok__));
31556 windows_core::HRESULT(0)
31557 }
31558 Err(err) => err.into(),
31559 }
31560 }
31561 }
31562 unsafe extern "system" fn HandsOffSession<
31563 Identity: IOlkAccountHelper_Impl,
31564 const OFFSET: isize,
31565 >(
31566 this: *mut core::ffi::c_void,
31567 ) -> windows_core::HRESULT {
31568 unsafe {
31569 let this: &Identity =
31570 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31571 IOlkAccountHelper_Impl::HandsOffSession(this).into()
31572 }
31573 }
31574 Self {
31575 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31576 PlaceHolder1: PlaceHolder1::<Identity, OFFSET>,
31577 GetIdentity: GetIdentity::<Identity, OFFSET>,
31578 GetMapiSession: GetMapiSession::<Identity, OFFSET>,
31579 HandsOffSession: HandsOffSession::<Identity, OFFSET>,
31580 }
31581 }
31582 pub fn matches(iid: &windows_core::GUID) -> bool {
31583 iid == &<IOlkAccountHelper as windows_core::Interface>::IID
31584 }
31585}
31586impl windows_core::RuntimeName for IOlkAccountHelper {}
31587windows_core::imp::define_interface!(
31588 IOlkAccountManager,
31589 IOlkAccountManager_Vtbl,
31590 0x9240a6cd_af41_11d2_8c3b_00104b2a6676
31591);
31592impl core::ops::Deref for IOlkAccountManager {
31593 type Target = IOlkErrorUnknown;
31594 fn deref(&self) -> &Self::Target {
31595 unsafe { core::mem::transmute(self) }
31596 }
31597}
31598windows_core::imp::interface_hierarchy!(
31599 IOlkAccountManager,
31600 windows_core::IUnknown,
31601 IOlkErrorUnknown
31602);
31603impl IOlkAccountManager {
31604 pub unsafe fn Init<P0>(&self, paccthelper: P0, dwflags: u32) -> windows_core::Result<()>
31605 where
31606 P0: windows_core::Param<IOlkAccountHelper>,
31607 {
31608 unsafe {
31609 (windows_core::Interface::vtable(self).Init)(
31610 windows_core::Interface::as_raw(self),
31611 paccthelper.param().abi(),
31612 dwflags,
31613 )
31614 .ok()
31615 }
31616 }
31617 pub unsafe fn DisplayAccountList<P2>(
31618 &self,
31619 hwnd: windows::Win32::Foundation::HWND,
31620 dwflags: u32,
31621 wsztitle: P2,
31622 ccategories: u32,
31623 rgclsidcategories: *const windows_core::GUID,
31624 pclsidtype: *const windows_core::GUID,
31625 ) -> windows_core::Result<()>
31626 where
31627 P2: windows_core::Param<windows_core::PCWSTR>,
31628 {
31629 unsafe {
31630 (windows_core::Interface::vtable(self).DisplayAccountList)(
31631 windows_core::Interface::as_raw(self),
31632 hwnd,
31633 dwflags,
31634 wsztitle.param().abi(),
31635 ccategories,
31636 rgclsidcategories,
31637 pclsidtype,
31638 )
31639 .ok()
31640 }
31641 }
31642 pub unsafe fn PlaceHolder1(&self) -> windows_core::Result<()> {
31643 unsafe {
31644 (windows_core::Interface::vtable(self).PlaceHolder1)(windows_core::Interface::as_raw(
31645 self,
31646 ))
31647 .ok()
31648 }
31649 }
31650 pub unsafe fn PlaceHolder2(&self) -> windows_core::Result<()> {
31651 unsafe {
31652 (windows_core::Interface::vtable(self).PlaceHolder2)(windows_core::Interface::as_raw(
31653 self,
31654 ))
31655 .ok()
31656 }
31657 }
31658 pub unsafe fn PlaceHolder3(&self) -> windows_core::Result<()> {
31659 unsafe {
31660 (windows_core::Interface::vtable(self).PlaceHolder3)(windows_core::Interface::as_raw(
31661 self,
31662 ))
31663 .ok()
31664 }
31665 }
31666 pub unsafe fn PlaceHolder4(&self) -> windows_core::Result<()> {
31667 unsafe {
31668 (windows_core::Interface::vtable(self).PlaceHolder4)(windows_core::Interface::as_raw(
31669 self,
31670 ))
31671 .ok()
31672 }
31673 }
31674 pub unsafe fn PlaceHolder5(&self) -> windows_core::Result<()> {
31675 unsafe {
31676 (windows_core::Interface::vtable(self).PlaceHolder5)(windows_core::Interface::as_raw(
31677 self,
31678 ))
31679 .ok()
31680 }
31681 }
31682 pub unsafe fn FindAccount(
31683 &self,
31684 dwprop: u32,
31685 pvar: *mut ACCT_VARIANT,
31686 ppaccount: *mut Option<IOlkAccount>,
31687 ) -> windows_core::Result<()> {
31688 unsafe {
31689 (windows_core::Interface::vtable(self).FindAccount)(
31690 windows_core::Interface::as_raw(self),
31691 dwprop,
31692 pvar as _,
31693 core::mem::transmute(ppaccount),
31694 )
31695 .ok()
31696 }
31697 }
31698 pub unsafe fn PlaceHolder6(&self) -> windows_core::Result<()> {
31699 unsafe {
31700 (windows_core::Interface::vtable(self).PlaceHolder6)(windows_core::Interface::as_raw(
31701 self,
31702 ))
31703 .ok()
31704 }
31705 }
31706 pub unsafe fn PlaceHolder7(&self) -> windows_core::Result<()> {
31707 unsafe {
31708 (windows_core::Interface::vtable(self).PlaceHolder7)(windows_core::Interface::as_raw(
31709 self,
31710 ))
31711 .ok()
31712 }
31713 }
31714 pub unsafe fn PlaceHolder8(&self) -> windows_core::Result<()> {
31715 unsafe {
31716 (windows_core::Interface::vtable(self).PlaceHolder8)(windows_core::Interface::as_raw(
31717 self,
31718 ))
31719 .ok()
31720 }
31721 }
31722 pub unsafe fn DeleteAccount(&self, dwacctid: u32) -> windows_core::Result<()> {
31723 unsafe {
31724 (windows_core::Interface::vtable(self).DeleteAccount)(
31725 windows_core::Interface::as_raw(self),
31726 dwacctid,
31727 )
31728 .ok()
31729 }
31730 }
31731 pub unsafe fn PlaceHolder9(&self) -> windows_core::Result<()> {
31732 unsafe {
31733 (windows_core::Interface::vtable(self).PlaceHolder9)(windows_core::Interface::as_raw(
31734 self,
31735 ))
31736 .ok()
31737 }
31738 }
31739 pub unsafe fn SaveChanges(&self, dwacctid: u32, dwflags: u32) -> windows_core::Result<()> {
31740 unsafe {
31741 (windows_core::Interface::vtable(self).SaveChanges)(
31742 windows_core::Interface::as_raw(self),
31743 dwacctid,
31744 dwflags,
31745 )
31746 .ok()
31747 }
31748 }
31749 pub unsafe fn GetOrder(
31750 &self,
31751 pclsidcategory: *const windows_core::GUID,
31752 pcaccts: *mut u32,
31753 prgaccts: *mut *mut u32,
31754 ) -> windows_core::Result<()> {
31755 unsafe {
31756 (windows_core::Interface::vtable(self).GetOrder)(
31757 windows_core::Interface::as_raw(self),
31758 pclsidcategory,
31759 pcaccts as _,
31760 prgaccts as _,
31761 )
31762 .ok()
31763 }
31764 }
31765 pub unsafe fn SetOrder(
31766 &self,
31767 pclsidcategory: *const windows_core::GUID,
31768 pcaccts: *mut u32,
31769 prgaccts: *mut *mut u32,
31770 ) -> windows_core::Result<()> {
31771 unsafe {
31772 (windows_core::Interface::vtable(self).SetOrder)(
31773 windows_core::Interface::as_raw(self),
31774 pclsidcategory,
31775 pcaccts as _,
31776 prgaccts as _,
31777 )
31778 .ok()
31779 }
31780 }
31781 pub unsafe fn EnumerateAccounts(
31782 &self,
31783 pclsidcategory: *const windows_core::GUID,
31784 pclsidtype: *const windows_core::GUID,
31785 dwflags: u32,
31786 ) -> windows_core::Result<IOlkEnum> {
31787 unsafe {
31788 let mut result__ = core::mem::zeroed();
31789 (windows_core::Interface::vtable(self).EnumerateAccounts)(
31790 windows_core::Interface::as_raw(self),
31791 pclsidcategory,
31792 pclsidtype,
31793 dwflags,
31794 &mut result__,
31795 )
31796 .and_then(|| windows_core::Type::from_abi(result__))
31797 }
31798 }
31799 pub unsafe fn PlaceHolder10(&self) -> windows_core::Result<()> {
31800 unsafe {
31801 (windows_core::Interface::vtable(self).PlaceHolder10)(windows_core::Interface::as_raw(
31802 self,
31803 ))
31804 .ok()
31805 }
31806 }
31807 pub unsafe fn PlaceHolder11(&self) -> windows_core::Result<()> {
31808 unsafe {
31809 (windows_core::Interface::vtable(self).PlaceHolder11)(windows_core::Interface::as_raw(
31810 self,
31811 ))
31812 .ok()
31813 }
31814 }
31815 pub unsafe fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()> {
31816 unsafe {
31817 (windows_core::Interface::vtable(self).FreeMemory)(
31818 windows_core::Interface::as_raw(self),
31819 pv as _,
31820 )
31821 .ok()
31822 }
31823 }
31824 pub unsafe fn Advise<P0>(&self, pnotify: P0, pdwcookie: *mut u32) -> windows_core::Result<()>
31825 where
31826 P0: windows_core::Param<IOlkAccountNotify>,
31827 {
31828 unsafe {
31829 (windows_core::Interface::vtable(self).Advise)(
31830 windows_core::Interface::as_raw(self),
31831 pnotify.param().abi(),
31832 pdwcookie as _,
31833 )
31834 .ok()
31835 }
31836 }
31837 pub unsafe fn Unadvise(&self, pdwcookie: *mut u32) -> windows_core::Result<()> {
31838 unsafe {
31839 (windows_core::Interface::vtable(self).Unadvise)(
31840 windows_core::Interface::as_raw(self),
31841 pdwcookie as _,
31842 )
31843 .ok()
31844 }
31845 }
31846 pub unsafe fn PlaceHolder12(&self) -> windows_core::Result<()> {
31847 unsafe {
31848 (windows_core::Interface::vtable(self).PlaceHolder12)(windows_core::Interface::as_raw(
31849 self,
31850 ))
31851 .ok()
31852 }
31853 }
31854 pub unsafe fn PlaceHolder13(&self) -> windows_core::Result<()> {
31855 unsafe {
31856 (windows_core::Interface::vtable(self).PlaceHolder13)(windows_core::Interface::as_raw(
31857 self,
31858 ))
31859 .ok()
31860 }
31861 }
31862 pub unsafe fn PlaceHolder14(&self) -> windows_core::Result<()> {
31863 unsafe {
31864 (windows_core::Interface::vtable(self).PlaceHolder14)(windows_core::Interface::as_raw(
31865 self,
31866 ))
31867 .ok()
31868 }
31869 }
31870}
31871#[repr(C)]
31872pub struct IOlkAccountManager_Vtbl {
31873 pub base__: IOlkErrorUnknown_Vtbl,
31874 pub Init: unsafe extern "system" fn(
31875 *mut core::ffi::c_void,
31876 *mut core::ffi::c_void,
31877 u32,
31878 ) -> windows_core::HRESULT,
31879 pub DisplayAccountList: unsafe extern "system" fn(
31880 *mut core::ffi::c_void,
31881 windows::Win32::Foundation::HWND,
31882 u32,
31883 windows_core::PCWSTR,
31884 u32,
31885 *const windows_core::GUID,
31886 *const windows_core::GUID,
31887 ) -> windows_core::HRESULT,
31888 pub PlaceHolder1: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31889 pub PlaceHolder2: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31890 pub PlaceHolder3: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31891 pub PlaceHolder4: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31892 pub PlaceHolder5: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31893 pub FindAccount: unsafe extern "system" fn(
31894 *mut core::ffi::c_void,
31895 u32,
31896 *mut ACCT_VARIANT,
31897 *mut *mut core::ffi::c_void,
31898 ) -> windows_core::HRESULT,
31899 pub PlaceHolder6: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31900 pub PlaceHolder7: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31901 pub PlaceHolder8: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31902 pub DeleteAccount:
31903 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
31904 pub PlaceHolder9: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31905 pub SaveChanges:
31906 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
31907 pub GetOrder: unsafe extern "system" fn(
31908 *mut core::ffi::c_void,
31909 *const windows_core::GUID,
31910 *mut u32,
31911 *mut *mut u32,
31912 ) -> windows_core::HRESULT,
31913 pub SetOrder: unsafe extern "system" fn(
31914 *mut core::ffi::c_void,
31915 *const windows_core::GUID,
31916 *mut u32,
31917 *mut *mut u32,
31918 ) -> windows_core::HRESULT,
31919 pub EnumerateAccounts: unsafe extern "system" fn(
31920 *mut core::ffi::c_void,
31921 *const windows_core::GUID,
31922 *const windows_core::GUID,
31923 u32,
31924 *mut *mut core::ffi::c_void,
31925 ) -> windows_core::HRESULT,
31926 pub PlaceHolder10: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31927 pub PlaceHolder11: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31928 pub FreeMemory:
31929 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
31930 pub Advise: unsafe extern "system" fn(
31931 *mut core::ffi::c_void,
31932 *mut core::ffi::c_void,
31933 *mut u32,
31934 ) -> windows_core::HRESULT,
31935 pub Unadvise:
31936 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
31937 pub PlaceHolder12: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31938 pub PlaceHolder13: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31939 pub PlaceHolder14: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31940}
31941pub trait IOlkAccountManager_Impl: IOlkErrorUnknown_Impl {
31942 fn Init(
31943 &self,
31944 paccthelper: windows_core::Ref<'_, IOlkAccountHelper>,
31945 dwflags: u32,
31946 ) -> windows_core::Result<()>;
31947 fn DisplayAccountList(
31948 &self,
31949 hwnd: windows::Win32::Foundation::HWND,
31950 dwflags: u32,
31951 wsztitle: &windows_core::PCWSTR,
31952 ccategories: u32,
31953 rgclsidcategories: *const windows_core::GUID,
31954 pclsidtype: *const windows_core::GUID,
31955 ) -> windows_core::Result<()>;
31956 fn PlaceHolder1(&self) -> windows_core::Result<()>;
31957 fn PlaceHolder2(&self) -> windows_core::Result<()>;
31958 fn PlaceHolder3(&self) -> windows_core::Result<()>;
31959 fn PlaceHolder4(&self) -> windows_core::Result<()>;
31960 fn PlaceHolder5(&self) -> windows_core::Result<()>;
31961 fn FindAccount(
31962 &self,
31963 dwprop: u32,
31964 pvar: *mut ACCT_VARIANT,
31965 ppaccount: windows_core::OutRef<'_, IOlkAccount>,
31966 ) -> windows_core::Result<()>;
31967 fn PlaceHolder6(&self) -> windows_core::Result<()>;
31968 fn PlaceHolder7(&self) -> windows_core::Result<()>;
31969 fn PlaceHolder8(&self) -> windows_core::Result<()>;
31970 fn DeleteAccount(&self, dwacctid: u32) -> windows_core::Result<()>;
31971 fn PlaceHolder9(&self) -> windows_core::Result<()>;
31972 fn SaveChanges(&self, dwacctid: u32, dwflags: u32) -> windows_core::Result<()>;
31973 fn GetOrder(
31974 &self,
31975 pclsidcategory: *const windows_core::GUID,
31976 pcaccts: *mut u32,
31977 prgaccts: *mut *mut u32,
31978 ) -> windows_core::Result<()>;
31979 fn SetOrder(
31980 &self,
31981 pclsidcategory: *const windows_core::GUID,
31982 pcaccts: *mut u32,
31983 prgaccts: *mut *mut u32,
31984 ) -> windows_core::Result<()>;
31985 fn EnumerateAccounts(
31986 &self,
31987 pclsidcategory: *const windows_core::GUID,
31988 pclsidtype: *const windows_core::GUID,
31989 dwflags: u32,
31990 ) -> windows_core::Result<IOlkEnum>;
31991 fn PlaceHolder10(&self) -> windows_core::Result<()>;
31992 fn PlaceHolder11(&self) -> windows_core::Result<()>;
31993 fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()>;
31994 fn Advise(
31995 &self,
31996 pnotify: windows_core::Ref<'_, IOlkAccountNotify>,
31997 pdwcookie: *mut u32,
31998 ) -> windows_core::Result<()>;
31999 fn Unadvise(&self, pdwcookie: *mut u32) -> windows_core::Result<()>;
32000 fn PlaceHolder12(&self) -> windows_core::Result<()>;
32001 fn PlaceHolder13(&self) -> windows_core::Result<()>;
32002 fn PlaceHolder14(&self) -> windows_core::Result<()>;
32003}
32004impl IOlkAccountManager_Vtbl {
32005 pub const fn new<Identity: IOlkAccountManager_Impl, const OFFSET: isize>() -> Self {
32006 unsafe extern "system" fn Init<Identity: IOlkAccountManager_Impl, const OFFSET: isize>(
32007 this: *mut core::ffi::c_void,
32008 paccthelper: *mut core::ffi::c_void,
32009 dwflags: u32,
32010 ) -> windows_core::HRESULT {
32011 unsafe {
32012 let this: &Identity =
32013 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32014 IOlkAccountManager_Impl::Init(
32015 this,
32016 core::mem::transmute_copy(&paccthelper),
32017 core::mem::transmute_copy(&dwflags),
32018 )
32019 .into()
32020 }
32021 }
32022 unsafe extern "system" fn DisplayAccountList<
32023 Identity: IOlkAccountManager_Impl,
32024 const OFFSET: isize,
32025 >(
32026 this: *mut core::ffi::c_void,
32027 hwnd: windows::Win32::Foundation::HWND,
32028 dwflags: u32,
32029 wsztitle: windows_core::PCWSTR,
32030 ccategories: u32,
32031 rgclsidcategories: *const windows_core::GUID,
32032 pclsidtype: *const windows_core::GUID,
32033 ) -> windows_core::HRESULT {
32034 unsafe {
32035 let this: &Identity =
32036 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32037 IOlkAccountManager_Impl::DisplayAccountList(
32038 this,
32039 core::mem::transmute_copy(&hwnd),
32040 core::mem::transmute_copy(&dwflags),
32041 core::mem::transmute(&wsztitle),
32042 core::mem::transmute_copy(&ccategories),
32043 core::mem::transmute_copy(&rgclsidcategories),
32044 core::mem::transmute_copy(&pclsidtype),
32045 )
32046 .into()
32047 }
32048 }
32049 unsafe extern "system" fn PlaceHolder1<
32050 Identity: IOlkAccountManager_Impl,
32051 const OFFSET: isize,
32052 >(
32053 this: *mut core::ffi::c_void,
32054 ) -> windows_core::HRESULT {
32055 unsafe {
32056 let this: &Identity =
32057 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32058 IOlkAccountManager_Impl::PlaceHolder1(this).into()
32059 }
32060 }
32061 unsafe extern "system" fn PlaceHolder2<
32062 Identity: IOlkAccountManager_Impl,
32063 const OFFSET: isize,
32064 >(
32065 this: *mut core::ffi::c_void,
32066 ) -> windows_core::HRESULT {
32067 unsafe {
32068 let this: &Identity =
32069 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32070 IOlkAccountManager_Impl::PlaceHolder2(this).into()
32071 }
32072 }
32073 unsafe extern "system" fn PlaceHolder3<
32074 Identity: IOlkAccountManager_Impl,
32075 const OFFSET: isize,
32076 >(
32077 this: *mut core::ffi::c_void,
32078 ) -> windows_core::HRESULT {
32079 unsafe {
32080 let this: &Identity =
32081 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32082 IOlkAccountManager_Impl::PlaceHolder3(this).into()
32083 }
32084 }
32085 unsafe extern "system" fn PlaceHolder4<
32086 Identity: IOlkAccountManager_Impl,
32087 const OFFSET: isize,
32088 >(
32089 this: *mut core::ffi::c_void,
32090 ) -> windows_core::HRESULT {
32091 unsafe {
32092 let this: &Identity =
32093 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32094 IOlkAccountManager_Impl::PlaceHolder4(this).into()
32095 }
32096 }
32097 unsafe extern "system" fn PlaceHolder5<
32098 Identity: IOlkAccountManager_Impl,
32099 const OFFSET: isize,
32100 >(
32101 this: *mut core::ffi::c_void,
32102 ) -> windows_core::HRESULT {
32103 unsafe {
32104 let this: &Identity =
32105 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32106 IOlkAccountManager_Impl::PlaceHolder5(this).into()
32107 }
32108 }
32109 unsafe extern "system" fn FindAccount<
32110 Identity: IOlkAccountManager_Impl,
32111 const OFFSET: isize,
32112 >(
32113 this: *mut core::ffi::c_void,
32114 dwprop: u32,
32115 pvar: *mut ACCT_VARIANT,
32116 ppaccount: *mut *mut core::ffi::c_void,
32117 ) -> windows_core::HRESULT {
32118 unsafe {
32119 let this: &Identity =
32120 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32121 IOlkAccountManager_Impl::FindAccount(
32122 this,
32123 core::mem::transmute_copy(&dwprop),
32124 core::mem::transmute_copy(&pvar),
32125 core::mem::transmute_copy(&ppaccount),
32126 )
32127 .into()
32128 }
32129 }
32130 unsafe extern "system" fn PlaceHolder6<
32131 Identity: IOlkAccountManager_Impl,
32132 const OFFSET: isize,
32133 >(
32134 this: *mut core::ffi::c_void,
32135 ) -> windows_core::HRESULT {
32136 unsafe {
32137 let this: &Identity =
32138 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32139 IOlkAccountManager_Impl::PlaceHolder6(this).into()
32140 }
32141 }
32142 unsafe extern "system" fn PlaceHolder7<
32143 Identity: IOlkAccountManager_Impl,
32144 const OFFSET: isize,
32145 >(
32146 this: *mut core::ffi::c_void,
32147 ) -> windows_core::HRESULT {
32148 unsafe {
32149 let this: &Identity =
32150 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32151 IOlkAccountManager_Impl::PlaceHolder7(this).into()
32152 }
32153 }
32154 unsafe extern "system" fn PlaceHolder8<
32155 Identity: IOlkAccountManager_Impl,
32156 const OFFSET: isize,
32157 >(
32158 this: *mut core::ffi::c_void,
32159 ) -> windows_core::HRESULT {
32160 unsafe {
32161 let this: &Identity =
32162 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32163 IOlkAccountManager_Impl::PlaceHolder8(this).into()
32164 }
32165 }
32166 unsafe extern "system" fn DeleteAccount<
32167 Identity: IOlkAccountManager_Impl,
32168 const OFFSET: isize,
32169 >(
32170 this: *mut core::ffi::c_void,
32171 dwacctid: u32,
32172 ) -> windows_core::HRESULT {
32173 unsafe {
32174 let this: &Identity =
32175 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32176 IOlkAccountManager_Impl::DeleteAccount(this, core::mem::transmute_copy(&dwacctid))
32177 .into()
32178 }
32179 }
32180 unsafe extern "system" fn PlaceHolder9<
32181 Identity: IOlkAccountManager_Impl,
32182 const OFFSET: isize,
32183 >(
32184 this: *mut core::ffi::c_void,
32185 ) -> windows_core::HRESULT {
32186 unsafe {
32187 let this: &Identity =
32188 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32189 IOlkAccountManager_Impl::PlaceHolder9(this).into()
32190 }
32191 }
32192 unsafe extern "system" fn SaveChanges<
32193 Identity: IOlkAccountManager_Impl,
32194 const OFFSET: isize,
32195 >(
32196 this: *mut core::ffi::c_void,
32197 dwacctid: u32,
32198 dwflags: u32,
32199 ) -> windows_core::HRESULT {
32200 unsafe {
32201 let this: &Identity =
32202 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32203 IOlkAccountManager_Impl::SaveChanges(
32204 this,
32205 core::mem::transmute_copy(&dwacctid),
32206 core::mem::transmute_copy(&dwflags),
32207 )
32208 .into()
32209 }
32210 }
32211 unsafe extern "system" fn GetOrder<
32212 Identity: IOlkAccountManager_Impl,
32213 const OFFSET: isize,
32214 >(
32215 this: *mut core::ffi::c_void,
32216 pclsidcategory: *const windows_core::GUID,
32217 pcaccts: *mut u32,
32218 prgaccts: *mut *mut u32,
32219 ) -> windows_core::HRESULT {
32220 unsafe {
32221 let this: &Identity =
32222 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32223 IOlkAccountManager_Impl::GetOrder(
32224 this,
32225 core::mem::transmute_copy(&pclsidcategory),
32226 core::mem::transmute_copy(&pcaccts),
32227 core::mem::transmute_copy(&prgaccts),
32228 )
32229 .into()
32230 }
32231 }
32232 unsafe extern "system" fn SetOrder<
32233 Identity: IOlkAccountManager_Impl,
32234 const OFFSET: isize,
32235 >(
32236 this: *mut core::ffi::c_void,
32237 pclsidcategory: *const windows_core::GUID,
32238 pcaccts: *mut u32,
32239 prgaccts: *mut *mut u32,
32240 ) -> windows_core::HRESULT {
32241 unsafe {
32242 let this: &Identity =
32243 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32244 IOlkAccountManager_Impl::SetOrder(
32245 this,
32246 core::mem::transmute_copy(&pclsidcategory),
32247 core::mem::transmute_copy(&pcaccts),
32248 core::mem::transmute_copy(&prgaccts),
32249 )
32250 .into()
32251 }
32252 }
32253 unsafe extern "system" fn EnumerateAccounts<
32254 Identity: IOlkAccountManager_Impl,
32255 const OFFSET: isize,
32256 >(
32257 this: *mut core::ffi::c_void,
32258 pclsidcategory: *const windows_core::GUID,
32259 pclsidtype: *const windows_core::GUID,
32260 dwflags: u32,
32261 ppenum: *mut *mut core::ffi::c_void,
32262 ) -> windows_core::HRESULT {
32263 unsafe {
32264 let this: &Identity =
32265 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32266 match IOlkAccountManager_Impl::EnumerateAccounts(
32267 this,
32268 core::mem::transmute_copy(&pclsidcategory),
32269 core::mem::transmute_copy(&pclsidtype),
32270 core::mem::transmute_copy(&dwflags),
32271 ) {
32272 Ok(ok__) => {
32273 ppenum.write(core::mem::transmute(ok__));
32274 windows_core::HRESULT(0)
32275 }
32276 Err(err) => err.into(),
32277 }
32278 }
32279 }
32280 unsafe extern "system" fn PlaceHolder10<
32281 Identity: IOlkAccountManager_Impl,
32282 const OFFSET: isize,
32283 >(
32284 this: *mut core::ffi::c_void,
32285 ) -> windows_core::HRESULT {
32286 unsafe {
32287 let this: &Identity =
32288 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32289 IOlkAccountManager_Impl::PlaceHolder10(this).into()
32290 }
32291 }
32292 unsafe extern "system" fn PlaceHolder11<
32293 Identity: IOlkAccountManager_Impl,
32294 const OFFSET: isize,
32295 >(
32296 this: *mut core::ffi::c_void,
32297 ) -> windows_core::HRESULT {
32298 unsafe {
32299 let this: &Identity =
32300 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32301 IOlkAccountManager_Impl::PlaceHolder11(this).into()
32302 }
32303 }
32304 unsafe extern "system" fn FreeMemory<
32305 Identity: IOlkAccountManager_Impl,
32306 const OFFSET: isize,
32307 >(
32308 this: *mut core::ffi::c_void,
32309 pv: *mut u8,
32310 ) -> windows_core::HRESULT {
32311 unsafe {
32312 let this: &Identity =
32313 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32314 IOlkAccountManager_Impl::FreeMemory(this, core::mem::transmute_copy(&pv)).into()
32315 }
32316 }
32317 unsafe extern "system" fn Advise<Identity: IOlkAccountManager_Impl, const OFFSET: isize>(
32318 this: *mut core::ffi::c_void,
32319 pnotify: *mut core::ffi::c_void,
32320 pdwcookie: *mut u32,
32321 ) -> windows_core::HRESULT {
32322 unsafe {
32323 let this: &Identity =
32324 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32325 IOlkAccountManager_Impl::Advise(
32326 this,
32327 core::mem::transmute_copy(&pnotify),
32328 core::mem::transmute_copy(&pdwcookie),
32329 )
32330 .into()
32331 }
32332 }
32333 unsafe extern "system" fn Unadvise<
32334 Identity: IOlkAccountManager_Impl,
32335 const OFFSET: isize,
32336 >(
32337 this: *mut core::ffi::c_void,
32338 pdwcookie: *mut u32,
32339 ) -> windows_core::HRESULT {
32340 unsafe {
32341 let this: &Identity =
32342 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32343 IOlkAccountManager_Impl::Unadvise(this, core::mem::transmute_copy(&pdwcookie))
32344 .into()
32345 }
32346 }
32347 unsafe extern "system" fn PlaceHolder12<
32348 Identity: IOlkAccountManager_Impl,
32349 const OFFSET: isize,
32350 >(
32351 this: *mut core::ffi::c_void,
32352 ) -> windows_core::HRESULT {
32353 unsafe {
32354 let this: &Identity =
32355 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32356 IOlkAccountManager_Impl::PlaceHolder12(this).into()
32357 }
32358 }
32359 unsafe extern "system" fn PlaceHolder13<
32360 Identity: IOlkAccountManager_Impl,
32361 const OFFSET: isize,
32362 >(
32363 this: *mut core::ffi::c_void,
32364 ) -> windows_core::HRESULT {
32365 unsafe {
32366 let this: &Identity =
32367 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32368 IOlkAccountManager_Impl::PlaceHolder13(this).into()
32369 }
32370 }
32371 unsafe extern "system" fn PlaceHolder14<
32372 Identity: IOlkAccountManager_Impl,
32373 const OFFSET: isize,
32374 >(
32375 this: *mut core::ffi::c_void,
32376 ) -> windows_core::HRESULT {
32377 unsafe {
32378 let this: &Identity =
32379 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32380 IOlkAccountManager_Impl::PlaceHolder14(this).into()
32381 }
32382 }
32383 Self {
32384 base__: IOlkErrorUnknown_Vtbl::new::<Identity, OFFSET>(),
32385 Init: Init::<Identity, OFFSET>,
32386 DisplayAccountList: DisplayAccountList::<Identity, OFFSET>,
32387 PlaceHolder1: PlaceHolder1::<Identity, OFFSET>,
32388 PlaceHolder2: PlaceHolder2::<Identity, OFFSET>,
32389 PlaceHolder3: PlaceHolder3::<Identity, OFFSET>,
32390 PlaceHolder4: PlaceHolder4::<Identity, OFFSET>,
32391 PlaceHolder5: PlaceHolder5::<Identity, OFFSET>,
32392 FindAccount: FindAccount::<Identity, OFFSET>,
32393 PlaceHolder6: PlaceHolder6::<Identity, OFFSET>,
32394 PlaceHolder7: PlaceHolder7::<Identity, OFFSET>,
32395 PlaceHolder8: PlaceHolder8::<Identity, OFFSET>,
32396 DeleteAccount: DeleteAccount::<Identity, OFFSET>,
32397 PlaceHolder9: PlaceHolder9::<Identity, OFFSET>,
32398 SaveChanges: SaveChanges::<Identity, OFFSET>,
32399 GetOrder: GetOrder::<Identity, OFFSET>,
32400 SetOrder: SetOrder::<Identity, OFFSET>,
32401 EnumerateAccounts: EnumerateAccounts::<Identity, OFFSET>,
32402 PlaceHolder10: PlaceHolder10::<Identity, OFFSET>,
32403 PlaceHolder11: PlaceHolder11::<Identity, OFFSET>,
32404 FreeMemory: FreeMemory::<Identity, OFFSET>,
32405 Advise: Advise::<Identity, OFFSET>,
32406 Unadvise: Unadvise::<Identity, OFFSET>,
32407 PlaceHolder12: PlaceHolder12::<Identity, OFFSET>,
32408 PlaceHolder13: PlaceHolder13::<Identity, OFFSET>,
32409 PlaceHolder14: PlaceHolder14::<Identity, OFFSET>,
32410 }
32411 }
32412 pub fn matches(iid: &windows_core::GUID) -> bool {
32413 iid == &<IOlkAccountManager as windows_core::Interface>::IID
32414 || iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
32415 }
32416}
32417impl windows_core::RuntimeName for IOlkAccountManager {}
32418windows_core::imp::define_interface!(
32419 IOlkAccountNotify,
32420 IOlkAccountNotify_Vtbl,
32421 0x9240a6c3_af41_11d2_8c3b_00104b2a6676
32422);
32423impl core::ops::Deref for IOlkAccountNotify {
32424 type Target = IOlkErrorUnknown;
32425 fn deref(&self) -> &Self::Target {
32426 unsafe { core::mem::transmute(self) }
32427 }
32428}
32429windows_core::imp::interface_hierarchy!(
32430 IOlkAccountNotify,
32431 windows_core::IUnknown,
32432 IOlkErrorUnknown
32433);
32434#[repr(C)]
32435pub struct IOlkAccountNotify_Vtbl {
32436 pub base__: IOlkErrorUnknown_Vtbl,
32437}
32438pub trait IOlkAccountNotify_Impl: IOlkErrorUnknown_Impl {}
32439impl IOlkAccountNotify_Vtbl {
32440 pub const fn new<Identity: IOlkAccountNotify_Impl, const OFFSET: isize>() -> Self {
32441 Self {
32442 base__: IOlkErrorUnknown_Vtbl::new::<Identity, OFFSET>(),
32443 }
32444 }
32445 pub fn matches(iid: &windows_core::GUID) -> bool {
32446 iid == &<IOlkAccountNotify as windows_core::Interface>::IID
32447 || iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
32448 }
32449}
32450impl windows_core::RuntimeName for IOlkAccountNotify {}
32451windows_core::imp::define_interface!(
32452 IOlkEnum,
32453 IOlkEnum_Vtbl,
32454 0x9240a6c0_af41_11d2_8c3b_00104b2a6676
32455);
32456windows_core::imp::interface_hierarchy!(IOlkEnum, windows_core::IUnknown);
32457impl IOlkEnum {
32458 pub unsafe fn GetCount(&self, pulcount: *mut u32) -> windows_core::Result<()> {
32459 unsafe {
32460 (windows_core::Interface::vtable(self).GetCount)(
32461 windows_core::Interface::as_raw(self),
32462 pulcount as _,
32463 )
32464 .ok()
32465 }
32466 }
32467 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
32468 unsafe {
32469 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
32470 .ok()
32471 }
32472 }
32473 pub unsafe fn GetNext(&self) -> windows_core::Result<windows_core::IUnknown> {
32474 unsafe {
32475 let mut result__ = core::mem::zeroed();
32476 (windows_core::Interface::vtable(self).GetNext)(
32477 windows_core::Interface::as_raw(self),
32478 &mut result__,
32479 )
32480 .and_then(|| windows_core::Type::from_abi(result__))
32481 }
32482 }
32483 pub unsafe fn Skip(&self, cskip: u32) -> windows_core::Result<()> {
32484 unsafe {
32485 (windows_core::Interface::vtable(self).Skip)(
32486 windows_core::Interface::as_raw(self),
32487 cskip,
32488 )
32489 .ok()
32490 }
32491 }
32492}
32493#[repr(C)]
32494pub struct IOlkEnum_Vtbl {
32495 pub base__: windows_core::IUnknown_Vtbl,
32496 pub GetCount:
32497 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
32498 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32499 pub GetNext: unsafe extern "system" fn(
32500 *mut core::ffi::c_void,
32501 *mut *mut core::ffi::c_void,
32502 ) -> windows_core::HRESULT,
32503 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
32504}
32505pub trait IOlkEnum_Impl: windows_core::IUnknownImpl {
32506 fn GetCount(&self, pulcount: *mut u32) -> windows_core::Result<()>;
32507 fn Reset(&self) -> windows_core::Result<()>;
32508 fn GetNext(&self) -> windows_core::Result<windows_core::IUnknown>;
32509 fn Skip(&self, cskip: u32) -> windows_core::Result<()>;
32510}
32511impl IOlkEnum_Vtbl {
32512 pub const fn new<Identity: IOlkEnum_Impl, const OFFSET: isize>() -> Self {
32513 unsafe extern "system" fn GetCount<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32514 this: *mut core::ffi::c_void,
32515 pulcount: *mut u32,
32516 ) -> windows_core::HRESULT {
32517 unsafe {
32518 let this: &Identity =
32519 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32520 IOlkEnum_Impl::GetCount(this, core::mem::transmute_copy(&pulcount)).into()
32521 }
32522 }
32523 unsafe extern "system" fn Reset<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32524 this: *mut core::ffi::c_void,
32525 ) -> windows_core::HRESULT {
32526 unsafe {
32527 let this: &Identity =
32528 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32529 IOlkEnum_Impl::Reset(this).into()
32530 }
32531 }
32532 unsafe extern "system" fn GetNext<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32533 this: *mut core::ffi::c_void,
32534 ppunk: *mut *mut core::ffi::c_void,
32535 ) -> windows_core::HRESULT {
32536 unsafe {
32537 let this: &Identity =
32538 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32539 match IOlkEnum_Impl::GetNext(this) {
32540 Ok(ok__) => {
32541 ppunk.write(core::mem::transmute(ok__));
32542 windows_core::HRESULT(0)
32543 }
32544 Err(err) => err.into(),
32545 }
32546 }
32547 }
32548 unsafe extern "system" fn Skip<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32549 this: *mut core::ffi::c_void,
32550 cskip: u32,
32551 ) -> windows_core::HRESULT {
32552 unsafe {
32553 let this: &Identity =
32554 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32555 IOlkEnum_Impl::Skip(this, core::mem::transmute_copy(&cskip)).into()
32556 }
32557 }
32558 Self {
32559 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32560 GetCount: GetCount::<Identity, OFFSET>,
32561 Reset: Reset::<Identity, OFFSET>,
32562 GetNext: GetNext::<Identity, OFFSET>,
32563 Skip: Skip::<Identity, OFFSET>,
32564 }
32565 }
32566 pub fn matches(iid: &windows_core::GUID) -> bool {
32567 iid == &<IOlkEnum as windows_core::Interface>::IID
32568 }
32569}
32570impl windows_core::RuntimeName for IOlkEnum {}
32571windows_core::imp::define_interface!(
32572 IOlkErrorUnknown,
32573 IOlkErrorUnknown_Vtbl,
32574 0x9240a6c0_af41_11d2_8c3b_00104b2a6676
32575);
32576windows_core::imp::interface_hierarchy!(IOlkErrorUnknown, windows_core::IUnknown);
32577impl IOlkErrorUnknown {
32578 pub unsafe fn GetLastError(
32579 &self,
32580 hr: windows_core::HRESULT,
32581 ppwszerror: *mut windows_core::PWSTR,
32582 ) -> windows_core::Result<()> {
32583 unsafe {
32584 (windows_core::Interface::vtable(self).GetLastError)(
32585 windows_core::Interface::as_raw(self),
32586 hr,
32587 ppwszerror as _,
32588 )
32589 .ok()
32590 }
32591 }
32592}
32593#[repr(C)]
32594pub struct IOlkErrorUnknown_Vtbl {
32595 pub base__: windows_core::IUnknown_Vtbl,
32596 pub GetLastError: unsafe extern "system" fn(
32597 *mut core::ffi::c_void,
32598 windows_core::HRESULT,
32599 *mut windows_core::PWSTR,
32600 ) -> windows_core::HRESULT,
32601}
32602pub trait IOlkErrorUnknown_Impl: windows_core::IUnknownImpl {
32603 fn GetLastError(
32604 &self,
32605 hr: windows_core::HRESULT,
32606 ppwszerror: *mut windows_core::PWSTR,
32607 ) -> windows_core::Result<()>;
32608}
32609impl IOlkErrorUnknown_Vtbl {
32610 pub const fn new<Identity: IOlkErrorUnknown_Impl, const OFFSET: isize>() -> Self {
32611 unsafe extern "system" fn GetLastError<
32612 Identity: IOlkErrorUnknown_Impl,
32613 const OFFSET: isize,
32614 >(
32615 this: *mut core::ffi::c_void,
32616 hr: windows_core::HRESULT,
32617 ppwszerror: *mut windows_core::PWSTR,
32618 ) -> windows_core::HRESULT {
32619 unsafe {
32620 let this: &Identity =
32621 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32622 IOlkErrorUnknown_Impl::GetLastError(
32623 this,
32624 core::mem::transmute_copy(&hr),
32625 core::mem::transmute_copy(&ppwszerror),
32626 )
32627 .into()
32628 }
32629 }
32630 Self {
32631 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32632 GetLastError: GetLastError::<Identity, OFFSET>,
32633 }
32634 }
32635 pub fn matches(iid: &windows_core::GUID) -> bool {
32636 iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
32637 }
32638}
32639impl windows_core::RuntimeName for IOlkErrorUnknown {}
32640pub const IPROP_CLEAN: u32 = 65536u32;
32641pub const IPROP_DIRTY: u32 = 131072u32;
32642pub const IPROP_READONLY: u32 = 1u32;
32643pub const IPROP_READWRITE: u32 = 2u32;
32644windows_core::imp::define_interface!(
32645 IPersistMessage,
32646 IPersistMessage_Vtbl,
32647 0x0002032a_0000_0000_c000_000000000046
32648);
32649windows_core::imp::interface_hierarchy!(IPersistMessage, windows_core::IUnknown);
32650impl IPersistMessage {
32651 pub unsafe fn GetLastError(
32652 &self,
32653 hresult: windows_core::HRESULT,
32654 ulflags: u32,
32655 lppmapierror: *mut *mut MAPIERROR,
32656 ) -> windows_core::Result<()> {
32657 unsafe {
32658 (windows_core::Interface::vtable(self).GetLastError)(
32659 windows_core::Interface::as_raw(self),
32660 hresult,
32661 ulflags,
32662 lppmapierror as _,
32663 )
32664 .ok()
32665 }
32666 }
32667 pub unsafe fn GetClassID(
32668 &self,
32669 lpclassid: *mut windows_core::GUID,
32670 ) -> windows_core::Result<()> {
32671 unsafe {
32672 (windows_core::Interface::vtable(self).GetClassID)(
32673 windows_core::Interface::as_raw(self),
32674 lpclassid as _,
32675 )
32676 .ok()
32677 }
32678 }
32679 pub unsafe fn IsDirty(&self) -> windows_core::Result<()> {
32680 unsafe {
32681 (windows_core::Interface::vtable(self).IsDirty)(windows_core::Interface::as_raw(self))
32682 .ok()
32683 }
32684 }
32685 pub unsafe fn InitNew<P0, P1>(&self, pmessagesite: P0, pmessage: P1) -> windows_core::Result<()>
32686 where
32687 P0: windows_core::Param<IMAPIMessageSite>,
32688 P1: windows_core::Param<IMessage>,
32689 {
32690 unsafe {
32691 (windows_core::Interface::vtable(self).InitNew)(
32692 windows_core::Interface::as_raw(self),
32693 pmessagesite.param().abi(),
32694 pmessage.param().abi(),
32695 )
32696 .ok()
32697 }
32698 }
32699 pub unsafe fn Load<P0, P1>(
32700 &self,
32701 pmessagesite: P0,
32702 pmessage: P1,
32703 ulmessagestatus: u32,
32704 ulmessageflags: u32,
32705 ) -> windows_core::Result<()>
32706 where
32707 P0: windows_core::Param<IMAPIMessageSite>,
32708 P1: windows_core::Param<IMessage>,
32709 {
32710 unsafe {
32711 (windows_core::Interface::vtable(self).Load)(
32712 windows_core::Interface::as_raw(self),
32713 pmessagesite.param().abi(),
32714 pmessage.param().abi(),
32715 ulmessagestatus,
32716 ulmessageflags,
32717 )
32718 .ok()
32719 }
32720 }
32721 pub unsafe fn Save<P0>(&self, pmessage: P0, fsameasload: u32) -> windows_core::Result<()>
32722 where
32723 P0: windows_core::Param<IMessage>,
32724 {
32725 unsafe {
32726 (windows_core::Interface::vtable(self).Save)(
32727 windows_core::Interface::as_raw(self),
32728 pmessage.param().abi(),
32729 fsameasload,
32730 )
32731 .ok()
32732 }
32733 }
32734 pub unsafe fn SaveCompleted<P0>(&self, pmessage: P0) -> windows_core::Result<()>
32735 where
32736 P0: windows_core::Param<IMessage>,
32737 {
32738 unsafe {
32739 (windows_core::Interface::vtable(self).SaveCompleted)(
32740 windows_core::Interface::as_raw(self),
32741 pmessage.param().abi(),
32742 )
32743 .ok()
32744 }
32745 }
32746 pub unsafe fn HandsOffMessage(&self) -> windows_core::Result<()> {
32747 unsafe {
32748 (windows_core::Interface::vtable(self).HandsOffMessage)(
32749 windows_core::Interface::as_raw(self),
32750 )
32751 .ok()
32752 }
32753 }
32754}
32755#[repr(C)]
32756pub struct IPersistMessage_Vtbl {
32757 pub base__: windows_core::IUnknown_Vtbl,
32758 pub GetLastError: unsafe extern "system" fn(
32759 *mut core::ffi::c_void,
32760 windows_core::HRESULT,
32761 u32,
32762 *mut *mut MAPIERROR,
32763 ) -> windows_core::HRESULT,
32764 pub GetClassID: unsafe extern "system" fn(
32765 *mut core::ffi::c_void,
32766 *mut windows_core::GUID,
32767 ) -> windows_core::HRESULT,
32768 pub IsDirty: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32769 pub InitNew: unsafe extern "system" fn(
32770 *mut core::ffi::c_void,
32771 *mut core::ffi::c_void,
32772 *mut core::ffi::c_void,
32773 ) -> windows_core::HRESULT,
32774 pub Load: unsafe extern "system" fn(
32775 *mut core::ffi::c_void,
32776 *mut core::ffi::c_void,
32777 *mut core::ffi::c_void,
32778 u32,
32779 u32,
32780 ) -> windows_core::HRESULT,
32781 pub Save: unsafe extern "system" fn(
32782 *mut core::ffi::c_void,
32783 *mut core::ffi::c_void,
32784 u32,
32785 ) -> windows_core::HRESULT,
32786 pub SaveCompleted: unsafe extern "system" fn(
32787 *mut core::ffi::c_void,
32788 *mut core::ffi::c_void,
32789 ) -> windows_core::HRESULT,
32790 pub HandsOffMessage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32791}
32792pub trait IPersistMessage_Impl: windows_core::IUnknownImpl {
32793 fn GetLastError(
32794 &self,
32795 hresult: windows_core::HRESULT,
32796 ulflags: u32,
32797 lppmapierror: *mut *mut MAPIERROR,
32798 ) -> windows_core::Result<()>;
32799 fn GetClassID(&self, lpclassid: *mut windows_core::GUID) -> windows_core::Result<()>;
32800 fn IsDirty(&self) -> windows_core::Result<()>;
32801 fn InitNew(
32802 &self,
32803 pmessagesite: windows_core::Ref<'_, IMAPIMessageSite>,
32804 pmessage: windows_core::Ref<'_, IMessage>,
32805 ) -> windows_core::Result<()>;
32806 fn Load(
32807 &self,
32808 pmessagesite: windows_core::Ref<'_, IMAPIMessageSite>,
32809 pmessage: windows_core::Ref<'_, IMessage>,
32810 ulmessagestatus: u32,
32811 ulmessageflags: u32,
32812 ) -> windows_core::Result<()>;
32813 fn Save(
32814 &self,
32815 pmessage: windows_core::Ref<'_, IMessage>,
32816 fsameasload: u32,
32817 ) -> windows_core::Result<()>;
32818 fn SaveCompleted(&self, pmessage: windows_core::Ref<'_, IMessage>) -> windows_core::Result<()>;
32819 fn HandsOffMessage(&self) -> windows_core::Result<()>;
32820}
32821impl IPersistMessage_Vtbl {
32822 pub const fn new<Identity: IPersistMessage_Impl, const OFFSET: isize>() -> Self {
32823 unsafe extern "system" fn GetLastError<
32824 Identity: IPersistMessage_Impl,
32825 const OFFSET: isize,
32826 >(
32827 this: *mut core::ffi::c_void,
32828 hresult: windows_core::HRESULT,
32829 ulflags: u32,
32830 lppmapierror: *mut *mut MAPIERROR,
32831 ) -> windows_core::HRESULT {
32832 unsafe {
32833 let this: &Identity =
32834 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32835 IPersistMessage_Impl::GetLastError(
32836 this,
32837 core::mem::transmute_copy(&hresult),
32838 core::mem::transmute_copy(&ulflags),
32839 core::mem::transmute_copy(&lppmapierror),
32840 )
32841 .into()
32842 }
32843 }
32844 unsafe extern "system" fn GetClassID<
32845 Identity: IPersistMessage_Impl,
32846 const OFFSET: isize,
32847 >(
32848 this: *mut core::ffi::c_void,
32849 lpclassid: *mut windows_core::GUID,
32850 ) -> windows_core::HRESULT {
32851 unsafe {
32852 let this: &Identity =
32853 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32854 IPersistMessage_Impl::GetClassID(this, core::mem::transmute_copy(&lpclassid)).into()
32855 }
32856 }
32857 unsafe extern "system" fn IsDirty<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32858 this: *mut core::ffi::c_void,
32859 ) -> windows_core::HRESULT {
32860 unsafe {
32861 let this: &Identity =
32862 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32863 IPersistMessage_Impl::IsDirty(this).into()
32864 }
32865 }
32866 unsafe extern "system" fn InitNew<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32867 this: *mut core::ffi::c_void,
32868 pmessagesite: *mut core::ffi::c_void,
32869 pmessage: *mut core::ffi::c_void,
32870 ) -> windows_core::HRESULT {
32871 unsafe {
32872 let this: &Identity =
32873 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32874 IPersistMessage_Impl::InitNew(
32875 this,
32876 core::mem::transmute_copy(&pmessagesite),
32877 core::mem::transmute_copy(&pmessage),
32878 )
32879 .into()
32880 }
32881 }
32882 unsafe extern "system" fn Load<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32883 this: *mut core::ffi::c_void,
32884 pmessagesite: *mut core::ffi::c_void,
32885 pmessage: *mut core::ffi::c_void,
32886 ulmessagestatus: u32,
32887 ulmessageflags: u32,
32888 ) -> windows_core::HRESULT {
32889 unsafe {
32890 let this: &Identity =
32891 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32892 IPersistMessage_Impl::Load(
32893 this,
32894 core::mem::transmute_copy(&pmessagesite),
32895 core::mem::transmute_copy(&pmessage),
32896 core::mem::transmute_copy(&ulmessagestatus),
32897 core::mem::transmute_copy(&ulmessageflags),
32898 )
32899 .into()
32900 }
32901 }
32902 unsafe extern "system" fn Save<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32903 this: *mut core::ffi::c_void,
32904 pmessage: *mut core::ffi::c_void,
32905 fsameasload: u32,
32906 ) -> windows_core::HRESULT {
32907 unsafe {
32908 let this: &Identity =
32909 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32910 IPersistMessage_Impl::Save(
32911 this,
32912 core::mem::transmute_copy(&pmessage),
32913 core::mem::transmute_copy(&fsameasload),
32914 )
32915 .into()
32916 }
32917 }
32918 unsafe extern "system" fn SaveCompleted<
32919 Identity: IPersistMessage_Impl,
32920 const OFFSET: isize,
32921 >(
32922 this: *mut core::ffi::c_void,
32923 pmessage: *mut core::ffi::c_void,
32924 ) -> windows_core::HRESULT {
32925 unsafe {
32926 let this: &Identity =
32927 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32928 IPersistMessage_Impl::SaveCompleted(this, core::mem::transmute_copy(&pmessage))
32929 .into()
32930 }
32931 }
32932 unsafe extern "system" fn HandsOffMessage<
32933 Identity: IPersistMessage_Impl,
32934 const OFFSET: isize,
32935 >(
32936 this: *mut core::ffi::c_void,
32937 ) -> windows_core::HRESULT {
32938 unsafe {
32939 let this: &Identity =
32940 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32941 IPersistMessage_Impl::HandsOffMessage(this).into()
32942 }
32943 }
32944 Self {
32945 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32946 GetLastError: GetLastError::<Identity, OFFSET>,
32947 GetClassID: GetClassID::<Identity, OFFSET>,
32948 IsDirty: IsDirty::<Identity, OFFSET>,
32949 InitNew: InitNew::<Identity, OFFSET>,
32950 Load: Load::<Identity, OFFSET>,
32951 Save: Save::<Identity, OFFSET>,
32952 SaveCompleted: SaveCompleted::<Identity, OFFSET>,
32953 HandsOffMessage: HandsOffMessage::<Identity, OFFSET>,
32954 }
32955 }
32956 pub fn matches(iid: &windows_core::GUID) -> bool {
32957 iid == &<IPersistMessage as windows_core::Interface>::IID
32958 }
32959}
32960impl windows_core::RuntimeName for IPersistMessage {}
32961windows_core::imp::define_interface!(
32962 IPersistMime,
32963 IPersistMime_Vtbl,
32964 0xde4ad8da_555f_11d1_8dd0_00c04fb951f9
32965);
32966impl core::ops::Deref for IPersistMime {
32967 type Target = windows::Win32::System::Com::IPersist;
32968 fn deref(&self) -> &Self::Target {
32969 unsafe { core::mem::transmute(self) }
32970 }
32971}
32972windows_core::imp::interface_hierarchy!(
32973 IPersistMime,
32974 windows_core::IUnknown,
32975 windows::Win32::System::Com::IPersist
32976);
32977impl IPersistMime {
32978 pub unsafe fn Load<P0>(&self, pmsg: P0) -> windows_core::Result<()>
32979 where
32980 P0: windows_core::Param<IMimeMessage>,
32981 {
32982 unsafe {
32983 (windows_core::Interface::vtable(self).Load)(
32984 windows_core::Interface::as_raw(self),
32985 pmsg.param().abi(),
32986 )
32987 .ok()
32988 }
32989 }
32990 pub unsafe fn Save<P0>(&self, pmsg: P0, dwflags: u32) -> windows_core::Result<()>
32991 where
32992 P0: windows_core::Param<IMimeMessage>,
32993 {
32994 unsafe {
32995 (windows_core::Interface::vtable(self).Save)(
32996 windows_core::Interface::as_raw(self),
32997 pmsg.param().abi(),
32998 dwflags,
32999 )
33000 .ok()
33001 }
33002 }
33003}
33004#[repr(C)]
33005pub struct IPersistMime_Vtbl {
33006 pub base__: windows::Win32::System::Com::IPersist_Vtbl,
33007 pub Load: unsafe extern "system" fn(
33008 *mut core::ffi::c_void,
33009 *mut core::ffi::c_void,
33010 ) -> windows_core::HRESULT,
33011 pub Save: unsafe extern "system" fn(
33012 *mut core::ffi::c_void,
33013 *mut core::ffi::c_void,
33014 u32,
33015 ) -> windows_core::HRESULT,
33016}
33017pub trait IPersistMime_Impl: windows::Win32::System::Com::IPersist_Impl {
33018 fn Load(&self, pmsg: windows_core::Ref<'_, IMimeMessage>) -> windows_core::Result<()>;
33019 fn Save(
33020 &self,
33021 pmsg: windows_core::Ref<'_, IMimeMessage>,
33022 dwflags: u32,
33023 ) -> windows_core::Result<()>;
33024}
33025impl IPersistMime_Vtbl {
33026 pub const fn new<Identity: IPersistMime_Impl, const OFFSET: isize>() -> Self {
33027 unsafe extern "system" fn Load<Identity: IPersistMime_Impl, const OFFSET: isize>(
33028 this: *mut core::ffi::c_void,
33029 pmsg: *mut core::ffi::c_void,
33030 ) -> windows_core::HRESULT {
33031 unsafe {
33032 let this: &Identity =
33033 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33034 IPersistMime_Impl::Load(this, core::mem::transmute_copy(&pmsg)).into()
33035 }
33036 }
33037 unsafe extern "system" fn Save<Identity: IPersistMime_Impl, const OFFSET: isize>(
33038 this: *mut core::ffi::c_void,
33039 pmsg: *mut core::ffi::c_void,
33040 dwflags: u32,
33041 ) -> windows_core::HRESULT {
33042 unsafe {
33043 let this: &Identity =
33044 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33045 IPersistMime_Impl::Save(
33046 this,
33047 core::mem::transmute_copy(&pmsg),
33048 core::mem::transmute_copy(&dwflags),
33049 )
33050 .into()
33051 }
33052 }
33053 Self {
33054 base__: windows::Win32::System::Com::IPersist_Vtbl::new::<Identity, OFFSET>(),
33055 Load: Load::<Identity, OFFSET>,
33056 Save: Save::<Identity, OFFSET>,
33057 }
33058 }
33059 pub fn matches(iid: &windows_core::GUID) -> bool {
33060 iid == &<IPersistMime as windows_core::Interface>::IID
33061 || iid == &<windows::Win32::System::Com::IPersist as windows_core::Interface>::IID
33062 }
33063}
33064impl windows_core::RuntimeName for IPersistMime {}
33065windows_core::imp::define_interface!(
33066 IProfAdmin,
33067 IProfAdmin_Vtbl,
33068 0x0002031c_0000_0000_c000_000000000046
33069);
33070windows_core::imp::interface_hierarchy!(IProfAdmin, windows_core::IUnknown);
33071impl IProfAdmin {
33072 pub unsafe fn GetLastError(
33073 &self,
33074 hresult: windows_core::HRESULT,
33075 ulflags: u32,
33076 lppmapierror: *mut *mut MAPIERROR,
33077 ) -> windows_core::Result<()> {
33078 unsafe {
33079 (windows_core::Interface::vtable(self).GetLastError)(
33080 windows_core::Interface::as_raw(self),
33081 hresult,
33082 ulflags,
33083 lppmapierror as _,
33084 )
33085 .ok()
33086 }
33087 }
33088 pub unsafe fn GetProfileTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
33089 unsafe {
33090 let mut result__ = core::mem::zeroed();
33091 (windows_core::Interface::vtable(self).GetProfileTable)(
33092 windows_core::Interface::as_raw(self),
33093 ulflags,
33094 &mut result__,
33095 )
33096 .and_then(|| windows_core::Type::from_abi(result__))
33097 }
33098 }
33099 pub unsafe fn CreateProfile(
33100 &self,
33101 lpszprofilename: *mut i8,
33102 lpszpassword: *mut i8,
33103 uluiparam: usize,
33104 ulflags: u32,
33105 ) -> windows_core::Result<()> {
33106 unsafe {
33107 (windows_core::Interface::vtable(self).CreateProfile)(
33108 windows_core::Interface::as_raw(self),
33109 lpszprofilename as _,
33110 lpszpassword as _,
33111 uluiparam,
33112 ulflags,
33113 )
33114 .ok()
33115 }
33116 }
33117 pub unsafe fn DeleteProfile(
33118 &self,
33119 lpszprofilename: *mut i8,
33120 ulflags: u32,
33121 ) -> windows_core::Result<()> {
33122 unsafe {
33123 (windows_core::Interface::vtable(self).DeleteProfile)(
33124 windows_core::Interface::as_raw(self),
33125 lpszprofilename as _,
33126 ulflags,
33127 )
33128 .ok()
33129 }
33130 }
33131 pub unsafe fn ChangeProfilePassword(
33132 &self,
33133 lpszprofilename: *mut i8,
33134 lpszoldpassword: *mut i8,
33135 lpsznewpassword: *mut i8,
33136 ulflags: u32,
33137 ) -> windows_core::Result<()> {
33138 unsafe {
33139 (windows_core::Interface::vtable(self).ChangeProfilePassword)(
33140 windows_core::Interface::as_raw(self),
33141 lpszprofilename as _,
33142 lpszoldpassword as _,
33143 lpsznewpassword as _,
33144 ulflags,
33145 )
33146 .ok()
33147 }
33148 }
33149 pub unsafe fn CopyProfile(
33150 &self,
33151 lpszoldprofilename: *mut i8,
33152 lpszoldpassword: *mut i8,
33153 lpsznewprofilename: *mut i8,
33154 uluiparam: usize,
33155 ulflags: u32,
33156 ) -> windows_core::Result<()> {
33157 unsafe {
33158 (windows_core::Interface::vtable(self).CopyProfile)(
33159 windows_core::Interface::as_raw(self),
33160 lpszoldprofilename as _,
33161 lpszoldpassword as _,
33162 lpsznewprofilename as _,
33163 uluiparam,
33164 ulflags,
33165 )
33166 .ok()
33167 }
33168 }
33169 pub unsafe fn RenameProfile(
33170 &self,
33171 lpszoldprofilename: *mut i8,
33172 lpszoldpassword: *mut i8,
33173 lpsznewprofilename: *mut i8,
33174 uluiparam: usize,
33175 ulflags: u32,
33176 ) -> windows_core::Result<()> {
33177 unsafe {
33178 (windows_core::Interface::vtable(self).RenameProfile)(
33179 windows_core::Interface::as_raw(self),
33180 lpszoldprofilename as _,
33181 lpszoldpassword as _,
33182 lpsznewprofilename as _,
33183 uluiparam,
33184 ulflags,
33185 )
33186 .ok()
33187 }
33188 }
33189 pub unsafe fn SetDefaultProfile(
33190 &self,
33191 lpszprofilename: *mut i8,
33192 ulflags: u32,
33193 ) -> windows_core::Result<()> {
33194 unsafe {
33195 (windows_core::Interface::vtable(self).SetDefaultProfile)(
33196 windows_core::Interface::as_raw(self),
33197 lpszprofilename as _,
33198 ulflags,
33199 )
33200 .ok()
33201 }
33202 }
33203 pub unsafe fn AdminServices(
33204 &self,
33205 lpszprofilename: *mut i8,
33206 lpszpassword: *mut i8,
33207 uluiparam: usize,
33208 ulflags: u32,
33209 lppserviceadmin: *mut Option<IMsgServiceAdmin>,
33210 ) -> windows_core::Result<()> {
33211 unsafe {
33212 (windows_core::Interface::vtable(self).AdminServices)(
33213 windows_core::Interface::as_raw(self),
33214 lpszprofilename as _,
33215 lpszpassword as _,
33216 uluiparam,
33217 ulflags,
33218 core::mem::transmute(lppserviceadmin),
33219 )
33220 .ok()
33221 }
33222 }
33223}
33224#[repr(C)]
33225pub struct IProfAdmin_Vtbl {
33226 pub base__: windows_core::IUnknown_Vtbl,
33227 pub GetLastError: unsafe extern "system" fn(
33228 *mut core::ffi::c_void,
33229 windows_core::HRESULT,
33230 u32,
33231 *mut *mut MAPIERROR,
33232 ) -> windows_core::HRESULT,
33233 pub GetProfileTable: unsafe extern "system" fn(
33234 *mut core::ffi::c_void,
33235 u32,
33236 *mut *mut core::ffi::c_void,
33237 ) -> windows_core::HRESULT,
33238 pub CreateProfile: unsafe extern "system" fn(
33239 *mut core::ffi::c_void,
33240 *mut i8,
33241 *mut i8,
33242 usize,
33243 u32,
33244 ) -> windows_core::HRESULT,
33245 pub DeleteProfile:
33246 unsafe extern "system" fn(*mut core::ffi::c_void, *mut i8, u32) -> windows_core::HRESULT,
33247 pub ChangeProfilePassword: unsafe extern "system" fn(
33248 *mut core::ffi::c_void,
33249 *mut i8,
33250 *mut i8,
33251 *mut i8,
33252 u32,
33253 ) -> windows_core::HRESULT,
33254 pub CopyProfile: unsafe extern "system" fn(
33255 *mut core::ffi::c_void,
33256 *mut i8,
33257 *mut i8,
33258 *mut i8,
33259 usize,
33260 u32,
33261 ) -> windows_core::HRESULT,
33262 pub RenameProfile: unsafe extern "system" fn(
33263 *mut core::ffi::c_void,
33264 *mut i8,
33265 *mut i8,
33266 *mut i8,
33267 usize,
33268 u32,
33269 ) -> windows_core::HRESULT,
33270 pub SetDefaultProfile:
33271 unsafe extern "system" fn(*mut core::ffi::c_void, *mut i8, u32) -> windows_core::HRESULT,
33272 pub AdminServices: unsafe extern "system" fn(
33273 *mut core::ffi::c_void,
33274 *mut i8,
33275 *mut i8,
33276 usize,
33277 u32,
33278 *mut *mut core::ffi::c_void,
33279 ) -> windows_core::HRESULT,
33280}
33281pub trait IProfAdmin_Impl: windows_core::IUnknownImpl {
33282 fn GetLastError(
33283 &self,
33284 hresult: windows_core::HRESULT,
33285 ulflags: u32,
33286 lppmapierror: *mut *mut MAPIERROR,
33287 ) -> windows_core::Result<()>;
33288 fn GetProfileTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
33289 fn CreateProfile(
33290 &self,
33291 lpszprofilename: *mut i8,
33292 lpszpassword: *mut i8,
33293 uluiparam: usize,
33294 ulflags: u32,
33295 ) -> windows_core::Result<()>;
33296 fn DeleteProfile(&self, lpszprofilename: *mut i8, ulflags: u32) -> windows_core::Result<()>;
33297 fn ChangeProfilePassword(
33298 &self,
33299 lpszprofilename: *mut i8,
33300 lpszoldpassword: *mut i8,
33301 lpsznewpassword: *mut i8,
33302 ulflags: u32,
33303 ) -> windows_core::Result<()>;
33304 fn CopyProfile(
33305 &self,
33306 lpszoldprofilename: *mut i8,
33307 lpszoldpassword: *mut i8,
33308 lpsznewprofilename: *mut i8,
33309 uluiparam: usize,
33310 ulflags: u32,
33311 ) -> windows_core::Result<()>;
33312 fn RenameProfile(
33313 &self,
33314 lpszoldprofilename: *mut i8,
33315 lpszoldpassword: *mut i8,
33316 lpsznewprofilename: *mut i8,
33317 uluiparam: usize,
33318 ulflags: u32,
33319 ) -> windows_core::Result<()>;
33320 fn SetDefaultProfile(&self, lpszprofilename: *mut i8, ulflags: u32)
33321 -> windows_core::Result<()>;
33322 fn AdminServices(
33323 &self,
33324 lpszprofilename: *mut i8,
33325 lpszpassword: *mut i8,
33326 uluiparam: usize,
33327 ulflags: u32,
33328 lppserviceadmin: windows_core::OutRef<'_, IMsgServiceAdmin>,
33329 ) -> windows_core::Result<()>;
33330}
33331impl IProfAdmin_Vtbl {
33332 pub const fn new<Identity: IProfAdmin_Impl, const OFFSET: isize>() -> Self {
33333 unsafe extern "system" fn GetLastError<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33334 this: *mut core::ffi::c_void,
33335 hresult: windows_core::HRESULT,
33336 ulflags: u32,
33337 lppmapierror: *mut *mut MAPIERROR,
33338 ) -> windows_core::HRESULT {
33339 unsafe {
33340 let this: &Identity =
33341 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33342 IProfAdmin_Impl::GetLastError(
33343 this,
33344 core::mem::transmute_copy(&hresult),
33345 core::mem::transmute_copy(&ulflags),
33346 core::mem::transmute_copy(&lppmapierror),
33347 )
33348 .into()
33349 }
33350 }
33351 unsafe extern "system" fn GetProfileTable<
33352 Identity: IProfAdmin_Impl,
33353 const OFFSET: isize,
33354 >(
33355 this: *mut core::ffi::c_void,
33356 ulflags: u32,
33357 lpptable: *mut *mut core::ffi::c_void,
33358 ) -> windows_core::HRESULT {
33359 unsafe {
33360 let this: &Identity =
33361 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33362 match IProfAdmin_Impl::GetProfileTable(this, core::mem::transmute_copy(&ulflags)) {
33363 Ok(ok__) => {
33364 lpptable.write(core::mem::transmute(ok__));
33365 windows_core::HRESULT(0)
33366 }
33367 Err(err) => err.into(),
33368 }
33369 }
33370 }
33371 unsafe extern "system" fn CreateProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33372 this: *mut core::ffi::c_void,
33373 lpszprofilename: *mut i8,
33374 lpszpassword: *mut i8,
33375 uluiparam: usize,
33376 ulflags: u32,
33377 ) -> windows_core::HRESULT {
33378 unsafe {
33379 let this: &Identity =
33380 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33381 IProfAdmin_Impl::CreateProfile(
33382 this,
33383 core::mem::transmute_copy(&lpszprofilename),
33384 core::mem::transmute_copy(&lpszpassword),
33385 core::mem::transmute_copy(&uluiparam),
33386 core::mem::transmute_copy(&ulflags),
33387 )
33388 .into()
33389 }
33390 }
33391 unsafe extern "system" fn DeleteProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33392 this: *mut core::ffi::c_void,
33393 lpszprofilename: *mut i8,
33394 ulflags: u32,
33395 ) -> windows_core::HRESULT {
33396 unsafe {
33397 let this: &Identity =
33398 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33399 IProfAdmin_Impl::DeleteProfile(
33400 this,
33401 core::mem::transmute_copy(&lpszprofilename),
33402 core::mem::transmute_copy(&ulflags),
33403 )
33404 .into()
33405 }
33406 }
33407 unsafe extern "system" fn ChangeProfilePassword<
33408 Identity: IProfAdmin_Impl,
33409 const OFFSET: isize,
33410 >(
33411 this: *mut core::ffi::c_void,
33412 lpszprofilename: *mut i8,
33413 lpszoldpassword: *mut i8,
33414 lpsznewpassword: *mut i8,
33415 ulflags: u32,
33416 ) -> windows_core::HRESULT {
33417 unsafe {
33418 let this: &Identity =
33419 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33420 IProfAdmin_Impl::ChangeProfilePassword(
33421 this,
33422 core::mem::transmute_copy(&lpszprofilename),
33423 core::mem::transmute_copy(&lpszoldpassword),
33424 core::mem::transmute_copy(&lpsznewpassword),
33425 core::mem::transmute_copy(&ulflags),
33426 )
33427 .into()
33428 }
33429 }
33430 unsafe extern "system" fn CopyProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33431 this: *mut core::ffi::c_void,
33432 lpszoldprofilename: *mut i8,
33433 lpszoldpassword: *mut i8,
33434 lpsznewprofilename: *mut i8,
33435 uluiparam: usize,
33436 ulflags: u32,
33437 ) -> windows_core::HRESULT {
33438 unsafe {
33439 let this: &Identity =
33440 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33441 IProfAdmin_Impl::CopyProfile(
33442 this,
33443 core::mem::transmute_copy(&lpszoldprofilename),
33444 core::mem::transmute_copy(&lpszoldpassword),
33445 core::mem::transmute_copy(&lpsznewprofilename),
33446 core::mem::transmute_copy(&uluiparam),
33447 core::mem::transmute_copy(&ulflags),
33448 )
33449 .into()
33450 }
33451 }
33452 unsafe extern "system" fn RenameProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33453 this: *mut core::ffi::c_void,
33454 lpszoldprofilename: *mut i8,
33455 lpszoldpassword: *mut i8,
33456 lpsznewprofilename: *mut i8,
33457 uluiparam: usize,
33458 ulflags: u32,
33459 ) -> windows_core::HRESULT {
33460 unsafe {
33461 let this: &Identity =
33462 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33463 IProfAdmin_Impl::RenameProfile(
33464 this,
33465 core::mem::transmute_copy(&lpszoldprofilename),
33466 core::mem::transmute_copy(&lpszoldpassword),
33467 core::mem::transmute_copy(&lpsznewprofilename),
33468 core::mem::transmute_copy(&uluiparam),
33469 core::mem::transmute_copy(&ulflags),
33470 )
33471 .into()
33472 }
33473 }
33474 unsafe extern "system" fn SetDefaultProfile<
33475 Identity: IProfAdmin_Impl,
33476 const OFFSET: isize,
33477 >(
33478 this: *mut core::ffi::c_void,
33479 lpszprofilename: *mut i8,
33480 ulflags: u32,
33481 ) -> windows_core::HRESULT {
33482 unsafe {
33483 let this: &Identity =
33484 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33485 IProfAdmin_Impl::SetDefaultProfile(
33486 this,
33487 core::mem::transmute_copy(&lpszprofilename),
33488 core::mem::transmute_copy(&ulflags),
33489 )
33490 .into()
33491 }
33492 }
33493 unsafe extern "system" fn AdminServices<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33494 this: *mut core::ffi::c_void,
33495 lpszprofilename: *mut i8,
33496 lpszpassword: *mut i8,
33497 uluiparam: usize,
33498 ulflags: u32,
33499 lppserviceadmin: *mut *mut core::ffi::c_void,
33500 ) -> windows_core::HRESULT {
33501 unsafe {
33502 let this: &Identity =
33503 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33504 IProfAdmin_Impl::AdminServices(
33505 this,
33506 core::mem::transmute_copy(&lpszprofilename),
33507 core::mem::transmute_copy(&lpszpassword),
33508 core::mem::transmute_copy(&uluiparam),
33509 core::mem::transmute_copy(&ulflags),
33510 core::mem::transmute_copy(&lppserviceadmin),
33511 )
33512 .into()
33513 }
33514 }
33515 Self {
33516 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33517 GetLastError: GetLastError::<Identity, OFFSET>,
33518 GetProfileTable: GetProfileTable::<Identity, OFFSET>,
33519 CreateProfile: CreateProfile::<Identity, OFFSET>,
33520 DeleteProfile: DeleteProfile::<Identity, OFFSET>,
33521 ChangeProfilePassword: ChangeProfilePassword::<Identity, OFFSET>,
33522 CopyProfile: CopyProfile::<Identity, OFFSET>,
33523 RenameProfile: RenameProfile::<Identity, OFFSET>,
33524 SetDefaultProfile: SetDefaultProfile::<Identity, OFFSET>,
33525 AdminServices: AdminServices::<Identity, OFFSET>,
33526 }
33527 }
33528 pub fn matches(iid: &windows_core::GUID) -> bool {
33529 iid == &<IProfAdmin as windows_core::Interface>::IID
33530 }
33531}
33532impl windows_core::RuntimeName for IProfAdmin {}
33533windows_core::imp::define_interface!(
33534 IProfSect,
33535 IProfSect_Vtbl,
33536 0x00020304_0000_0000_c000_000000000046
33537);
33538impl core::ops::Deref for IProfSect {
33539 type Target = IMAPIProp;
33540 fn deref(&self) -> &Self::Target {
33541 unsafe { core::mem::transmute(self) }
33542 }
33543}
33544windows_core::imp::interface_hierarchy!(IProfSect, windows_core::IUnknown, IMAPIProp);
33545#[repr(C)]
33546pub struct IProfSect_Vtbl {
33547 pub base__: IMAPIProp_Vtbl,
33548}
33549pub trait IProfSect_Impl: IMAPIProp_Impl {}
33550impl IProfSect_Vtbl {
33551 pub const fn new<Identity: IProfSect_Impl, const OFFSET: isize>() -> Self {
33552 Self {
33553 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
33554 }
33555 }
33556 pub fn matches(iid: &windows_core::GUID) -> bool {
33557 iid == &<IProfSect as windows_core::Interface>::IID
33558 || iid == &<IMAPIProp as windows_core::Interface>::IID
33559 }
33560}
33561impl windows_core::RuntimeName for IProfSect {}
33562windows_core::imp::define_interface!(IPropData, IPropData_Vtbl, 0);
33563impl core::ops::Deref for IPropData {
33564 type Target = IMAPIProp;
33565 fn deref(&self) -> &Self::Target {
33566 unsafe { core::mem::transmute(self) }
33567 }
33568}
33569windows_core::imp::interface_hierarchy!(IPropData, windows_core::IUnknown, IMAPIProp);
33570impl IPropData {
33571 pub unsafe fn HrSetObjAccess(&self, ulaccess: u32) -> windows_core::Result<()> {
33572 unsafe {
33573 (windows_core::Interface::vtable(self).HrSetObjAccess)(
33574 windows_core::Interface::as_raw(self),
33575 ulaccess,
33576 )
33577 .ok()
33578 }
33579 }
33580 pub unsafe fn HrSetPropAccess(
33581 &self,
33582 lpproptagarray: *mut SPropTagArray,
33583 rgulaccess: *mut u32,
33584 ) -> windows_core::Result<()> {
33585 unsafe {
33586 (windows_core::Interface::vtable(self).HrSetPropAccess)(
33587 windows_core::Interface::as_raw(self),
33588 lpproptagarray as _,
33589 rgulaccess as _,
33590 )
33591 .ok()
33592 }
33593 }
33594 pub unsafe fn HrGetPropAccess(
33595 &self,
33596 lppproptagarray: *mut *mut SPropTagArray,
33597 lprgulaccess: *mut *mut u32,
33598 ) -> windows_core::Result<()> {
33599 unsafe {
33600 (windows_core::Interface::vtable(self).HrGetPropAccess)(
33601 windows_core::Interface::as_raw(self),
33602 lppproptagarray as _,
33603 lprgulaccess as _,
33604 )
33605 .ok()
33606 }
33607 }
33608 pub unsafe fn HrAddObjProps(
33609 &self,
33610 lppproptagarray: *mut SPropTagArray,
33611 lprgulaccess: *mut *mut SPropProblemArray,
33612 ) -> windows_core::Result<()> {
33613 unsafe {
33614 (windows_core::Interface::vtable(self).HrAddObjProps)(
33615 windows_core::Interface::as_raw(self),
33616 lppproptagarray as _,
33617 lprgulaccess as _,
33618 )
33619 .ok()
33620 }
33621 }
33622}
33623#[repr(C)]
33624pub struct IPropData_Vtbl {
33625 pub base__: IMAPIProp_Vtbl,
33626 pub HrSetObjAccess:
33627 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
33628 pub HrSetPropAccess: unsafe extern "system" fn(
33629 *mut core::ffi::c_void,
33630 *mut SPropTagArray,
33631 *mut u32,
33632 ) -> windows_core::HRESULT,
33633 pub HrGetPropAccess: unsafe extern "system" fn(
33634 *mut core::ffi::c_void,
33635 *mut *mut SPropTagArray,
33636 *mut *mut u32,
33637 ) -> windows_core::HRESULT,
33638 pub HrAddObjProps: unsafe extern "system" fn(
33639 *mut core::ffi::c_void,
33640 *mut SPropTagArray,
33641 *mut *mut SPropProblemArray,
33642 ) -> windows_core::HRESULT,
33643}
33644pub trait IPropData_Impl: IMAPIProp_Impl {
33645 fn HrSetObjAccess(&self, ulaccess: u32) -> windows_core::Result<()>;
33646 fn HrSetPropAccess(
33647 &self,
33648 lpproptagarray: *mut SPropTagArray,
33649 rgulaccess: *mut u32,
33650 ) -> windows_core::Result<()>;
33651 fn HrGetPropAccess(
33652 &self,
33653 lppproptagarray: *mut *mut SPropTagArray,
33654 lprgulaccess: *mut *mut u32,
33655 ) -> windows_core::Result<()>;
33656 fn HrAddObjProps(
33657 &self,
33658 lppproptagarray: *mut SPropTagArray,
33659 lprgulaccess: *mut *mut SPropProblemArray,
33660 ) -> windows_core::Result<()>;
33661}
33662impl IPropData_Vtbl {
33663 pub const fn new<Identity: IPropData_Impl, const OFFSET: isize>() -> Self {
33664 unsafe extern "system" fn HrSetObjAccess<Identity: IPropData_Impl, const OFFSET: isize>(
33665 this: *mut core::ffi::c_void,
33666 ulaccess: u32,
33667 ) -> windows_core::HRESULT {
33668 unsafe {
33669 let this: &Identity =
33670 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33671 IPropData_Impl::HrSetObjAccess(this, core::mem::transmute_copy(&ulaccess)).into()
33672 }
33673 }
33674 unsafe extern "system" fn HrSetPropAccess<Identity: IPropData_Impl, const OFFSET: isize>(
33675 this: *mut core::ffi::c_void,
33676 lpproptagarray: *mut SPropTagArray,
33677 rgulaccess: *mut u32,
33678 ) -> windows_core::HRESULT {
33679 unsafe {
33680 let this: &Identity =
33681 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33682 IPropData_Impl::HrSetPropAccess(
33683 this,
33684 core::mem::transmute_copy(&lpproptagarray),
33685 core::mem::transmute_copy(&rgulaccess),
33686 )
33687 .into()
33688 }
33689 }
33690 unsafe extern "system" fn HrGetPropAccess<Identity: IPropData_Impl, const OFFSET: isize>(
33691 this: *mut core::ffi::c_void,
33692 lppproptagarray: *mut *mut SPropTagArray,
33693 lprgulaccess: *mut *mut u32,
33694 ) -> windows_core::HRESULT {
33695 unsafe {
33696 let this: &Identity =
33697 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33698 IPropData_Impl::HrGetPropAccess(
33699 this,
33700 core::mem::transmute_copy(&lppproptagarray),
33701 core::mem::transmute_copy(&lprgulaccess),
33702 )
33703 .into()
33704 }
33705 }
33706 unsafe extern "system" fn HrAddObjProps<Identity: IPropData_Impl, const OFFSET: isize>(
33707 this: *mut core::ffi::c_void,
33708 lppproptagarray: *mut SPropTagArray,
33709 lprgulaccess: *mut *mut SPropProblemArray,
33710 ) -> windows_core::HRESULT {
33711 unsafe {
33712 let this: &Identity =
33713 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33714 IPropData_Impl::HrAddObjProps(
33715 this,
33716 core::mem::transmute_copy(&lppproptagarray),
33717 core::mem::transmute_copy(&lprgulaccess),
33718 )
33719 .into()
33720 }
33721 }
33722 Self {
33723 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
33724 HrSetObjAccess: HrSetObjAccess::<Identity, OFFSET>,
33725 HrSetPropAccess: HrSetPropAccess::<Identity, OFFSET>,
33726 HrGetPropAccess: HrGetPropAccess::<Identity, OFFSET>,
33727 HrAddObjProps: HrAddObjProps::<Identity, OFFSET>,
33728 }
33729 }
33730 pub fn matches(iid: &windows_core::GUID) -> bool {
33731 iid == &<IPropData as windows_core::Interface>::IID
33732 || iid == &<IMAPIProp as windows_core::Interface>::IID
33733 }
33734}
33735impl windows_core::RuntimeName for IPropData {}
33736windows_core::imp::define_interface!(
33737 IProviderAdmin,
33738 IProviderAdmin_Vtbl,
33739 0x00020325_0000_0000_c000_000000000046
33740);
33741windows_core::imp::interface_hierarchy!(IProviderAdmin, windows_core::IUnknown);
33742impl IProviderAdmin {
33743 pub unsafe fn GetLastError(
33744 &self,
33745 hresult: windows_core::HRESULT,
33746 ulflags: u32,
33747 lppmapierror: *mut *mut MAPIERROR,
33748 ) -> windows_core::Result<()> {
33749 unsafe {
33750 (windows_core::Interface::vtable(self).GetLastError)(
33751 windows_core::Interface::as_raw(self),
33752 hresult,
33753 ulflags,
33754 lppmapierror as _,
33755 )
33756 .ok()
33757 }
33758 }
33759 pub unsafe fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
33760 unsafe {
33761 let mut result__ = core::mem::zeroed();
33762 (windows_core::Interface::vtable(self).GetProviderTable)(
33763 windows_core::Interface::as_raw(self),
33764 ulflags,
33765 &mut result__,
33766 )
33767 .and_then(|| windows_core::Type::from_abi(result__))
33768 }
33769 }
33770 pub unsafe fn CreateProvider(
33771 &self,
33772 lpszprovider: *mut i8,
33773 cvalues: u32,
33774 lpprops: *mut SPropValue,
33775 uluiparam: usize,
33776 ulflags: u32,
33777 lpuid: *mut MAPIUID,
33778 ) -> windows_core::Result<()> {
33779 unsafe {
33780 (windows_core::Interface::vtable(self).CreateProvider)(
33781 windows_core::Interface::as_raw(self),
33782 lpszprovider as _,
33783 cvalues,
33784 lpprops as _,
33785 uluiparam,
33786 ulflags,
33787 lpuid as _,
33788 )
33789 .ok()
33790 }
33791 }
33792 pub unsafe fn DeleteProvider(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()> {
33793 unsafe {
33794 (windows_core::Interface::vtable(self).DeleteProvider)(
33795 windows_core::Interface::as_raw(self),
33796 lpuid as _,
33797 )
33798 .ok()
33799 }
33800 }
33801 pub unsafe fn OpenProfileSection(
33802 &self,
33803 lpuid: *mut MAPIUID,
33804 lpinterface: *mut windows_core::GUID,
33805 ulflags: u32,
33806 lppprofsect: *mut Option<IProfSect>,
33807 ) -> windows_core::Result<()> {
33808 unsafe {
33809 (windows_core::Interface::vtable(self).OpenProfileSection)(
33810 windows_core::Interface::as_raw(self),
33811 lpuid as _,
33812 lpinterface as _,
33813 ulflags,
33814 core::mem::transmute(lppprofsect),
33815 )
33816 .ok()
33817 }
33818 }
33819}
33820#[repr(C)]
33821pub struct IProviderAdmin_Vtbl {
33822 pub base__: windows_core::IUnknown_Vtbl,
33823 pub GetLastError: unsafe extern "system" fn(
33824 *mut core::ffi::c_void,
33825 windows_core::HRESULT,
33826 u32,
33827 *mut *mut MAPIERROR,
33828 ) -> windows_core::HRESULT,
33829 pub GetProviderTable: unsafe extern "system" fn(
33830 *mut core::ffi::c_void,
33831 u32,
33832 *mut *mut core::ffi::c_void,
33833 ) -> windows_core::HRESULT,
33834 pub CreateProvider: unsafe extern "system" fn(
33835 *mut core::ffi::c_void,
33836 *mut i8,
33837 u32,
33838 *mut SPropValue,
33839 usize,
33840 u32,
33841 *mut MAPIUID,
33842 ) -> windows_core::HRESULT,
33843 pub DeleteProvider:
33844 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
33845 pub OpenProfileSection: unsafe extern "system" fn(
33846 *mut core::ffi::c_void,
33847 *mut MAPIUID,
33848 *mut windows_core::GUID,
33849 u32,
33850 *mut *mut core::ffi::c_void,
33851 ) -> windows_core::HRESULT,
33852}
33853pub trait IProviderAdmin_Impl: windows_core::IUnknownImpl {
33854 fn GetLastError(
33855 &self,
33856 hresult: windows_core::HRESULT,
33857 ulflags: u32,
33858 lppmapierror: *mut *mut MAPIERROR,
33859 ) -> windows_core::Result<()>;
33860 fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
33861 fn CreateProvider(
33862 &self,
33863 lpszprovider: *mut i8,
33864 cvalues: u32,
33865 lpprops: *mut SPropValue,
33866 uluiparam: usize,
33867 ulflags: u32,
33868 lpuid: *mut MAPIUID,
33869 ) -> windows_core::Result<()>;
33870 fn DeleteProvider(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()>;
33871 fn OpenProfileSection(
33872 &self,
33873 lpuid: *mut MAPIUID,
33874 lpinterface: *mut windows_core::GUID,
33875 ulflags: u32,
33876 lppprofsect: windows_core::OutRef<'_, IProfSect>,
33877 ) -> windows_core::Result<()>;
33878}
33879impl IProviderAdmin_Vtbl {
33880 pub const fn new<Identity: IProviderAdmin_Impl, const OFFSET: isize>() -> Self {
33881 unsafe extern "system" fn GetLastError<
33882 Identity: IProviderAdmin_Impl,
33883 const OFFSET: isize,
33884 >(
33885 this: *mut core::ffi::c_void,
33886 hresult: windows_core::HRESULT,
33887 ulflags: u32,
33888 lppmapierror: *mut *mut MAPIERROR,
33889 ) -> windows_core::HRESULT {
33890 unsafe {
33891 let this: &Identity =
33892 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33893 IProviderAdmin_Impl::GetLastError(
33894 this,
33895 core::mem::transmute_copy(&hresult),
33896 core::mem::transmute_copy(&ulflags),
33897 core::mem::transmute_copy(&lppmapierror),
33898 )
33899 .into()
33900 }
33901 }
33902 unsafe extern "system" fn GetProviderTable<
33903 Identity: IProviderAdmin_Impl,
33904 const OFFSET: isize,
33905 >(
33906 this: *mut core::ffi::c_void,
33907 ulflags: u32,
33908 lpptable: *mut *mut core::ffi::c_void,
33909 ) -> windows_core::HRESULT {
33910 unsafe {
33911 let this: &Identity =
33912 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33913 match IProviderAdmin_Impl::GetProviderTable(
33914 this,
33915 core::mem::transmute_copy(&ulflags),
33916 ) {
33917 Ok(ok__) => {
33918 lpptable.write(core::mem::transmute(ok__));
33919 windows_core::HRESULT(0)
33920 }
33921 Err(err) => err.into(),
33922 }
33923 }
33924 }
33925 unsafe extern "system" fn CreateProvider<
33926 Identity: IProviderAdmin_Impl,
33927 const OFFSET: isize,
33928 >(
33929 this: *mut core::ffi::c_void,
33930 lpszprovider: *mut i8,
33931 cvalues: u32,
33932 lpprops: *mut SPropValue,
33933 uluiparam: usize,
33934 ulflags: u32,
33935 lpuid: *mut MAPIUID,
33936 ) -> windows_core::HRESULT {
33937 unsafe {
33938 let this: &Identity =
33939 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33940 IProviderAdmin_Impl::CreateProvider(
33941 this,
33942 core::mem::transmute_copy(&lpszprovider),
33943 core::mem::transmute_copy(&cvalues),
33944 core::mem::transmute_copy(&lpprops),
33945 core::mem::transmute_copy(&uluiparam),
33946 core::mem::transmute_copy(&ulflags),
33947 core::mem::transmute_copy(&lpuid),
33948 )
33949 .into()
33950 }
33951 }
33952 unsafe extern "system" fn DeleteProvider<
33953 Identity: IProviderAdmin_Impl,
33954 const OFFSET: isize,
33955 >(
33956 this: *mut core::ffi::c_void,
33957 lpuid: *mut MAPIUID,
33958 ) -> windows_core::HRESULT {
33959 unsafe {
33960 let this: &Identity =
33961 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33962 IProviderAdmin_Impl::DeleteProvider(this, core::mem::transmute_copy(&lpuid)).into()
33963 }
33964 }
33965 unsafe extern "system" fn OpenProfileSection<
33966 Identity: IProviderAdmin_Impl,
33967 const OFFSET: isize,
33968 >(
33969 this: *mut core::ffi::c_void,
33970 lpuid: *mut MAPIUID,
33971 lpinterface: *mut windows_core::GUID,
33972 ulflags: u32,
33973 lppprofsect: *mut *mut core::ffi::c_void,
33974 ) -> windows_core::HRESULT {
33975 unsafe {
33976 let this: &Identity =
33977 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33978 IProviderAdmin_Impl::OpenProfileSection(
33979 this,
33980 core::mem::transmute_copy(&lpuid),
33981 core::mem::transmute_copy(&lpinterface),
33982 core::mem::transmute_copy(&ulflags),
33983 core::mem::transmute_copy(&lppprofsect),
33984 )
33985 .into()
33986 }
33987 }
33988 Self {
33989 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33990 GetLastError: GetLastError::<Identity, OFFSET>,
33991 GetProviderTable: GetProviderTable::<Identity, OFFSET>,
33992 CreateProvider: CreateProvider::<Identity, OFFSET>,
33993 DeleteProvider: DeleteProvider::<Identity, OFFSET>,
33994 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
33995 }
33996 }
33997 pub fn matches(iid: &windows_core::GUID) -> bool {
33998 iid == &<IProviderAdmin as windows_core::Interface>::IID
33999 }
34000}
34001impl windows_core::RuntimeName for IProviderAdmin {}
34002windows_core::imp::define_interface!(
34003 ISpoolerHook,
34004 ISpoolerHook_Vtbl,
34005 0x00020320_0000_0000_c000_000000000046
34006);
34007windows_core::imp::interface_hierarchy!(ISpoolerHook, windows_core::IUnknown);
34008impl ISpoolerHook {
34009 pub unsafe fn InboundMsgHook<P0, P1, P2>(
34010 &self,
34011 lpmessage: P0,
34012 lpfolder: P1,
34013 lpmdb: P2,
34014 lpulflags: *mut u32,
34015 lpcbentryid: *mut u32,
34016 lppentryid: *mut *mut u8,
34017 ) -> windows_core::Result<()>
34018 where
34019 P0: windows_core::Param<IMessage>,
34020 P1: windows_core::Param<IMAPIFolder>,
34021 P2: windows_core::Param<IMsgStore>,
34022 {
34023 unsafe {
34024 (windows_core::Interface::vtable(self).InboundMsgHook)(
34025 windows_core::Interface::as_raw(self),
34026 lpmessage.param().abi(),
34027 lpfolder.param().abi(),
34028 lpmdb.param().abi(),
34029 lpulflags as _,
34030 lpcbentryid as _,
34031 lppentryid as _,
34032 )
34033 .ok()
34034 }
34035 }
34036 pub unsafe fn OutboundMsgHook<P0, P1, P2>(
34037 &self,
34038 lpmessage: P0,
34039 lpfolder: P1,
34040 lpmdb: P2,
34041 lpulflags: *mut u32,
34042 lpcbentryid: *mut u32,
34043 lppentryid: *mut *mut u8,
34044 ) -> windows_core::Result<()>
34045 where
34046 P0: windows_core::Param<IMessage>,
34047 P1: windows_core::Param<IMAPIFolder>,
34048 P2: windows_core::Param<IMsgStore>,
34049 {
34050 unsafe {
34051 (windows_core::Interface::vtable(self).OutboundMsgHook)(
34052 windows_core::Interface::as_raw(self),
34053 lpmessage.param().abi(),
34054 lpfolder.param().abi(),
34055 lpmdb.param().abi(),
34056 lpulflags as _,
34057 lpcbentryid as _,
34058 lppentryid as _,
34059 )
34060 .ok()
34061 }
34062 }
34063}
34064#[repr(C)]
34065pub struct ISpoolerHook_Vtbl {
34066 pub base__: windows_core::IUnknown_Vtbl,
34067 pub InboundMsgHook: unsafe extern "system" fn(
34068 *mut core::ffi::c_void,
34069 *mut core::ffi::c_void,
34070 *mut core::ffi::c_void,
34071 *mut core::ffi::c_void,
34072 *mut u32,
34073 *mut u32,
34074 *mut *mut u8,
34075 ) -> windows_core::HRESULT,
34076 pub OutboundMsgHook: unsafe extern "system" fn(
34077 *mut core::ffi::c_void,
34078 *mut core::ffi::c_void,
34079 *mut core::ffi::c_void,
34080 *mut core::ffi::c_void,
34081 *mut u32,
34082 *mut u32,
34083 *mut *mut u8,
34084 ) -> windows_core::HRESULT,
34085}
34086pub trait ISpoolerHook_Impl: windows_core::IUnknownImpl {
34087 fn InboundMsgHook(
34088 &self,
34089 lpmessage: windows_core::Ref<'_, IMessage>,
34090 lpfolder: windows_core::Ref<'_, IMAPIFolder>,
34091 lpmdb: windows_core::Ref<'_, IMsgStore>,
34092 lpulflags: *mut u32,
34093 lpcbentryid: *mut u32,
34094 lppentryid: *mut *mut u8,
34095 ) -> windows_core::Result<()>;
34096 fn OutboundMsgHook(
34097 &self,
34098 lpmessage: windows_core::Ref<'_, IMessage>,
34099 lpfolder: windows_core::Ref<'_, IMAPIFolder>,
34100 lpmdb: windows_core::Ref<'_, IMsgStore>,
34101 lpulflags: *mut u32,
34102 lpcbentryid: *mut u32,
34103 lppentryid: *mut *mut u8,
34104 ) -> windows_core::Result<()>;
34105}
34106impl ISpoolerHook_Vtbl {
34107 pub const fn new<Identity: ISpoolerHook_Impl, const OFFSET: isize>() -> Self {
34108 unsafe extern "system" fn InboundMsgHook<
34109 Identity: ISpoolerHook_Impl,
34110 const OFFSET: isize,
34111 >(
34112 this: *mut core::ffi::c_void,
34113 lpmessage: *mut core::ffi::c_void,
34114 lpfolder: *mut core::ffi::c_void,
34115 lpmdb: *mut core::ffi::c_void,
34116 lpulflags: *mut u32,
34117 lpcbentryid: *mut u32,
34118 lppentryid: *mut *mut u8,
34119 ) -> windows_core::HRESULT {
34120 unsafe {
34121 let this: &Identity =
34122 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34123 ISpoolerHook_Impl::InboundMsgHook(
34124 this,
34125 core::mem::transmute_copy(&lpmessage),
34126 core::mem::transmute_copy(&lpfolder),
34127 core::mem::transmute_copy(&lpmdb),
34128 core::mem::transmute_copy(&lpulflags),
34129 core::mem::transmute_copy(&lpcbentryid),
34130 core::mem::transmute_copy(&lppentryid),
34131 )
34132 .into()
34133 }
34134 }
34135 unsafe extern "system" fn OutboundMsgHook<
34136 Identity: ISpoolerHook_Impl,
34137 const OFFSET: isize,
34138 >(
34139 this: *mut core::ffi::c_void,
34140 lpmessage: *mut core::ffi::c_void,
34141 lpfolder: *mut core::ffi::c_void,
34142 lpmdb: *mut core::ffi::c_void,
34143 lpulflags: *mut u32,
34144 lpcbentryid: *mut u32,
34145 lppentryid: *mut *mut u8,
34146 ) -> windows_core::HRESULT {
34147 unsafe {
34148 let this: &Identity =
34149 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34150 ISpoolerHook_Impl::OutboundMsgHook(
34151 this,
34152 core::mem::transmute_copy(&lpmessage),
34153 core::mem::transmute_copy(&lpfolder),
34154 core::mem::transmute_copy(&lpmdb),
34155 core::mem::transmute_copy(&lpulflags),
34156 core::mem::transmute_copy(&lpcbentryid),
34157 core::mem::transmute_copy(&lppentryid),
34158 )
34159 .into()
34160 }
34161 }
34162 Self {
34163 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34164 InboundMsgHook: InboundMsgHook::<Identity, OFFSET>,
34165 OutboundMsgHook: OutboundMsgHook::<Identity, OFFSET>,
34166 }
34167 }
34168 pub fn matches(iid: &windows_core::GUID) -> bool {
34169 iid == &<ISpoolerHook as windows_core::Interface>::IID
34170 }
34171}
34172impl windows_core::RuntimeName for ISpoolerHook {}
34173pub const IStream_Clone: METHODS = METHODS(136i32);
34174pub const IStream_Commit: METHODS = METHODS(131i32);
34175pub const IStream_CopyTo: METHODS = METHODS(130i32);
34176pub const IStream_LockRegion: METHODS = METHODS(133i32);
34177pub const IStream_Revert: METHODS = METHODS(132i32);
34178pub const IStream_Seek: METHODS = METHODS(128i32);
34179pub const IStream_SetSize: METHODS = METHODS(129i32);
34180pub const IStream_Stat: METHODS = METHODS(135i32);
34181pub const IStream_UnlockRegion: METHODS = METHODS(134i32);
34182pub const IStream__Read: METHODS = METHODS(126i32);
34183pub const IStream__Write: METHODS = METHODS(127i32);
34184pub const ITEMPROC_FORCE: u32 = 2048u32;
34185pub const ITT_ENCRYPTION: u32 = 2u32;
34186pub const ITT_SIGNING: u32 = 1u32;
34187windows_core::imp::define_interface!(ITableData, ITableData_Vtbl, 0);
34188windows_core::imp::interface_hierarchy!(ITableData, windows_core::IUnknown);
34189impl ITableData {
34190 pub unsafe fn HrGetView(
34191 &self,
34192 lpssortorderset: *mut SSortOrderSet,
34193 lpfcallerrelease: *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34194 ulcallerdata: usize,
34195 lppmapitable: *mut Option<IMAPITable>,
34196 ) -> windows_core::Result<()> {
34197 unsafe {
34198 (windows_core::Interface::vtable(self).HrGetView)(
34199 windows_core::Interface::as_raw(self),
34200 lpssortorderset as _,
34201 lpfcallerrelease as _,
34202 ulcallerdata,
34203 core::mem::transmute(lppmapitable),
34204 )
34205 .ok()
34206 }
34207 }
34208 pub unsafe fn HrModifyRow(&self, param0: *mut SRow) -> windows_core::Result<()> {
34209 unsafe {
34210 (windows_core::Interface::vtable(self).HrModifyRow)(
34211 windows_core::Interface::as_raw(self),
34212 param0 as _,
34213 )
34214 .ok()
34215 }
34216 }
34217 pub unsafe fn HrDeleteRow(&self, lpspropvalue: *mut SPropValue) -> windows_core::Result<()> {
34218 unsafe {
34219 (windows_core::Interface::vtable(self).HrDeleteRow)(
34220 windows_core::Interface::as_raw(self),
34221 lpspropvalue as _,
34222 )
34223 .ok()
34224 }
34225 }
34226 pub unsafe fn HrQueryRow(
34227 &self,
34228 lpspropvalue: *mut SPropValue,
34229 lppsrow: *mut *mut SRow,
34230 lpulirow: *mut u32,
34231 ) -> windows_core::Result<()> {
34232 unsafe {
34233 (windows_core::Interface::vtable(self).HrQueryRow)(
34234 windows_core::Interface::as_raw(self),
34235 lpspropvalue as _,
34236 lppsrow as _,
34237 lpulirow as _,
34238 )
34239 .ok()
34240 }
34241 }
34242 pub unsafe fn HrEnumRow(
34243 &self,
34244 ulrownumber: u32,
34245 lppsrow: *mut *mut SRow,
34246 ) -> windows_core::Result<()> {
34247 unsafe {
34248 (windows_core::Interface::vtable(self).HrEnumRow)(
34249 windows_core::Interface::as_raw(self),
34250 ulrownumber,
34251 lppsrow as _,
34252 )
34253 .ok()
34254 }
34255 }
34256 pub unsafe fn HrNotify(
34257 &self,
34258 ulflags: u32,
34259 cvalues: u32,
34260 lpspropvalue: *mut SPropValue,
34261 ) -> windows_core::Result<()> {
34262 unsafe {
34263 (windows_core::Interface::vtable(self).HrNotify)(
34264 windows_core::Interface::as_raw(self),
34265 ulflags,
34266 cvalues,
34267 lpspropvalue as _,
34268 )
34269 .ok()
34270 }
34271 }
34272 pub unsafe fn HrInsertRow(&self, ulirow: u32, lpsrow: *mut SRow) -> windows_core::Result<()> {
34273 unsafe {
34274 (windows_core::Interface::vtable(self).HrInsertRow)(
34275 windows_core::Interface::as_raw(self),
34276 ulirow,
34277 lpsrow as _,
34278 )
34279 .ok()
34280 }
34281 }
34282 pub unsafe fn HrModifyRows(
34283 &self,
34284 ulflags: u32,
34285 lpsrowset: *mut SRowSet,
34286 ) -> windows_core::Result<()> {
34287 unsafe {
34288 (windows_core::Interface::vtable(self).HrModifyRows)(
34289 windows_core::Interface::as_raw(self),
34290 ulflags,
34291 lpsrowset as _,
34292 )
34293 .ok()
34294 }
34295 }
34296 pub unsafe fn HrDeleteRows(
34297 &self,
34298 ulflags: u32,
34299 lprowsettodelete: *mut SRowSet,
34300 crowsdeleted: *mut u32,
34301 ) -> windows_core::Result<()> {
34302 unsafe {
34303 (windows_core::Interface::vtable(self).HrDeleteRows)(
34304 windows_core::Interface::as_raw(self),
34305 ulflags,
34306 lprowsettodelete as _,
34307 crowsdeleted as _,
34308 )
34309 .ok()
34310 }
34311 }
34312}
34313#[repr(C)]
34314pub struct ITableData_Vtbl {
34315 pub base__: windows_core::IUnknown_Vtbl,
34316 pub HrGetView: unsafe extern "system" fn(
34317 *mut core::ffi::c_void,
34318 *mut SSortOrderSet,
34319 *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34320 usize,
34321 *mut *mut core::ffi::c_void,
34322 ) -> windows_core::HRESULT,
34323 pub HrModifyRow:
34324 unsafe extern "system" fn(*mut core::ffi::c_void, *mut SRow) -> windows_core::HRESULT,
34325 pub HrDeleteRow:
34326 unsafe extern "system" fn(*mut core::ffi::c_void, *mut SPropValue) -> windows_core::HRESULT,
34327 pub HrQueryRow: unsafe extern "system" fn(
34328 *mut core::ffi::c_void,
34329 *mut SPropValue,
34330 *mut *mut SRow,
34331 *mut u32,
34332 ) -> windows_core::HRESULT,
34333 pub HrEnumRow: unsafe extern "system" fn(
34334 *mut core::ffi::c_void,
34335 u32,
34336 *mut *mut SRow,
34337 ) -> windows_core::HRESULT,
34338 pub HrNotify: unsafe extern "system" fn(
34339 *mut core::ffi::c_void,
34340 u32,
34341 u32,
34342 *mut SPropValue,
34343 ) -> windows_core::HRESULT,
34344 pub HrInsertRow:
34345 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut SRow) -> windows_core::HRESULT,
34346 pub HrModifyRows: unsafe extern "system" fn(
34347 *mut core::ffi::c_void,
34348 u32,
34349 *mut SRowSet,
34350 ) -> windows_core::HRESULT,
34351 pub HrDeleteRows: unsafe extern "system" fn(
34352 *mut core::ffi::c_void,
34353 u32,
34354 *mut SRowSet,
34355 *mut u32,
34356 ) -> windows_core::HRESULT,
34357}
34358pub trait ITableData_Impl: windows_core::IUnknownImpl {
34359 fn HrGetView(
34360 &self,
34361 lpssortorderset: *mut SSortOrderSet,
34362 lpfcallerrelease: *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34363 ulcallerdata: usize,
34364 lppmapitable: windows_core::OutRef<'_, IMAPITable>,
34365 ) -> windows_core::Result<()>;
34366 fn HrModifyRow(&self, param0: *mut SRow) -> windows_core::Result<()>;
34367 fn HrDeleteRow(&self, lpspropvalue: *mut SPropValue) -> windows_core::Result<()>;
34368 fn HrQueryRow(
34369 &self,
34370 lpspropvalue: *mut SPropValue,
34371 lppsrow: *mut *mut SRow,
34372 lpulirow: *mut u32,
34373 ) -> windows_core::Result<()>;
34374 fn HrEnumRow(&self, ulrownumber: u32, lppsrow: *mut *mut SRow) -> windows_core::Result<()>;
34375 fn HrNotify(
34376 &self,
34377 ulflags: u32,
34378 cvalues: u32,
34379 lpspropvalue: *mut SPropValue,
34380 ) -> windows_core::Result<()>;
34381 fn HrInsertRow(&self, ulirow: u32, lpsrow: *mut SRow) -> windows_core::Result<()>;
34382 fn HrModifyRows(&self, ulflags: u32, lpsrowset: *mut SRowSet) -> windows_core::Result<()>;
34383 fn HrDeleteRows(
34384 &self,
34385 ulflags: u32,
34386 lprowsettodelete: *mut SRowSet,
34387 crowsdeleted: *mut u32,
34388 ) -> windows_core::Result<()>;
34389}
34390impl ITableData_Vtbl {
34391 pub const fn new<Identity: ITableData_Impl, const OFFSET: isize>() -> Self {
34392 unsafe extern "system" fn HrGetView<Identity: ITableData_Impl, const OFFSET: isize>(
34393 this: *mut core::ffi::c_void,
34394 lpssortorderset: *mut SSortOrderSet,
34395 lpfcallerrelease: *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34396 ulcallerdata: usize,
34397 lppmapitable: *mut *mut core::ffi::c_void,
34398 ) -> windows_core::HRESULT {
34399 unsafe {
34400 let this: &Identity =
34401 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34402 ITableData_Impl::HrGetView(
34403 this,
34404 core::mem::transmute_copy(&lpssortorderset),
34405 core::mem::transmute_copy(&lpfcallerrelease),
34406 core::mem::transmute_copy(&ulcallerdata),
34407 core::mem::transmute_copy(&lppmapitable),
34408 )
34409 .into()
34410 }
34411 }
34412 unsafe extern "system" fn HrModifyRow<Identity: ITableData_Impl, const OFFSET: isize>(
34413 this: *mut core::ffi::c_void,
34414 param0: *mut SRow,
34415 ) -> windows_core::HRESULT {
34416 unsafe {
34417 let this: &Identity =
34418 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34419 ITableData_Impl::HrModifyRow(this, core::mem::transmute_copy(¶m0)).into()
34420 }
34421 }
34422 unsafe extern "system" fn HrDeleteRow<Identity: ITableData_Impl, const OFFSET: isize>(
34423 this: *mut core::ffi::c_void,
34424 lpspropvalue: *mut SPropValue,
34425 ) -> windows_core::HRESULT {
34426 unsafe {
34427 let this: &Identity =
34428 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34429 ITableData_Impl::HrDeleteRow(this, core::mem::transmute_copy(&lpspropvalue)).into()
34430 }
34431 }
34432 unsafe extern "system" fn HrQueryRow<Identity: ITableData_Impl, const OFFSET: isize>(
34433 this: *mut core::ffi::c_void,
34434 lpspropvalue: *mut SPropValue,
34435 lppsrow: *mut *mut SRow,
34436 lpulirow: *mut u32,
34437 ) -> windows_core::HRESULT {
34438 unsafe {
34439 let this: &Identity =
34440 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34441 ITableData_Impl::HrQueryRow(
34442 this,
34443 core::mem::transmute_copy(&lpspropvalue),
34444 core::mem::transmute_copy(&lppsrow),
34445 core::mem::transmute_copy(&lpulirow),
34446 )
34447 .into()
34448 }
34449 }
34450 unsafe extern "system" fn HrEnumRow<Identity: ITableData_Impl, const OFFSET: isize>(
34451 this: *mut core::ffi::c_void,
34452 ulrownumber: u32,
34453 lppsrow: *mut *mut SRow,
34454 ) -> windows_core::HRESULT {
34455 unsafe {
34456 let this: &Identity =
34457 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34458 ITableData_Impl::HrEnumRow(
34459 this,
34460 core::mem::transmute_copy(&ulrownumber),
34461 core::mem::transmute_copy(&lppsrow),
34462 )
34463 .into()
34464 }
34465 }
34466 unsafe extern "system" fn HrNotify<Identity: ITableData_Impl, const OFFSET: isize>(
34467 this: *mut core::ffi::c_void,
34468 ulflags: u32,
34469 cvalues: u32,
34470 lpspropvalue: *mut SPropValue,
34471 ) -> windows_core::HRESULT {
34472 unsafe {
34473 let this: &Identity =
34474 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34475 ITableData_Impl::HrNotify(
34476 this,
34477 core::mem::transmute_copy(&ulflags),
34478 core::mem::transmute_copy(&cvalues),
34479 core::mem::transmute_copy(&lpspropvalue),
34480 )
34481 .into()
34482 }
34483 }
34484 unsafe extern "system" fn HrInsertRow<Identity: ITableData_Impl, const OFFSET: isize>(
34485 this: *mut core::ffi::c_void,
34486 ulirow: u32,
34487 lpsrow: *mut SRow,
34488 ) -> windows_core::HRESULT {
34489 unsafe {
34490 let this: &Identity =
34491 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34492 ITableData_Impl::HrInsertRow(
34493 this,
34494 core::mem::transmute_copy(&ulirow),
34495 core::mem::transmute_copy(&lpsrow),
34496 )
34497 .into()
34498 }
34499 }
34500 unsafe extern "system" fn HrModifyRows<Identity: ITableData_Impl, const OFFSET: isize>(
34501 this: *mut core::ffi::c_void,
34502 ulflags: u32,
34503 lpsrowset: *mut SRowSet,
34504 ) -> windows_core::HRESULT {
34505 unsafe {
34506 let this: &Identity =
34507 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34508 ITableData_Impl::HrModifyRows(
34509 this,
34510 core::mem::transmute_copy(&ulflags),
34511 core::mem::transmute_copy(&lpsrowset),
34512 )
34513 .into()
34514 }
34515 }
34516 unsafe extern "system" fn HrDeleteRows<Identity: ITableData_Impl, const OFFSET: isize>(
34517 this: *mut core::ffi::c_void,
34518 ulflags: u32,
34519 lprowsettodelete: *mut SRowSet,
34520 crowsdeleted: *mut u32,
34521 ) -> windows_core::HRESULT {
34522 unsafe {
34523 let this: &Identity =
34524 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34525 ITableData_Impl::HrDeleteRows(
34526 this,
34527 core::mem::transmute_copy(&ulflags),
34528 core::mem::transmute_copy(&lprowsettodelete),
34529 core::mem::transmute_copy(&crowsdeleted),
34530 )
34531 .into()
34532 }
34533 }
34534 Self {
34535 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34536 HrGetView: HrGetView::<Identity, OFFSET>,
34537 HrModifyRow: HrModifyRow::<Identity, OFFSET>,
34538 HrDeleteRow: HrDeleteRow::<Identity, OFFSET>,
34539 HrQueryRow: HrQueryRow::<Identity, OFFSET>,
34540 HrEnumRow: HrEnumRow::<Identity, OFFSET>,
34541 HrNotify: HrNotify::<Identity, OFFSET>,
34542 HrInsertRow: HrInsertRow::<Identity, OFFSET>,
34543 HrModifyRows: HrModifyRows::<Identity, OFFSET>,
34544 HrDeleteRows: HrDeleteRows::<Identity, OFFSET>,
34545 }
34546 }
34547 pub fn matches(iid: &windows_core::GUID) -> bool {
34548 iid == &<ITableData as windows_core::Interface>::IID
34549 }
34550}
34551impl windows_core::RuntimeName for ITableData {}
34552pub const IUnknown_AddRef: METHODS = METHODS(1i32);
34553pub const IUnknown_QueryInterface: METHODS = METHODS(0i32);
34554pub const IUnknown_Release: METHODS = METHODS(2i32);
34555windows_core::imp::define_interface!(
34556 IXPLogon,
34557 IXPLogon_Vtbl,
34558 0x00020315_0000_0000_c000_000000000046
34559);
34560windows_core::imp::interface_hierarchy!(IXPLogon, windows_core::IUnknown);
34561impl IXPLogon {
34562 pub unsafe fn AddressTypes(
34563 &self,
34564 lpulflags: *mut u32,
34565 lpcadrtype: *mut u32,
34566 lpppadrtypearray: *mut *mut *mut i8,
34567 lpcmapiuid: *mut u32,
34568 lpppuidarray: *mut *mut *mut MAPIUID,
34569 ) -> windows_core::Result<()> {
34570 unsafe {
34571 (windows_core::Interface::vtable(self).AddressTypes)(
34572 windows_core::Interface::as_raw(self),
34573 lpulflags as _,
34574 lpcadrtype as _,
34575 lpppadrtypearray as _,
34576 lpcmapiuid as _,
34577 lpppuidarray as _,
34578 )
34579 .ok()
34580 }
34581 }
34582 pub unsafe fn RegisterOptions(
34583 &self,
34584 lpulflags: *mut u32,
34585 lpcoptions: *mut u32,
34586 lppoptions: *mut *mut OPTIONDATA,
34587 ) -> windows_core::Result<()> {
34588 unsafe {
34589 (windows_core::Interface::vtable(self).RegisterOptions)(
34590 windows_core::Interface::as_raw(self),
34591 lpulflags as _,
34592 lpcoptions as _,
34593 lppoptions as _,
34594 )
34595 .ok()
34596 }
34597 }
34598 pub unsafe fn TransportNotify(
34599 &self,
34600 lpulflags: *mut u32,
34601 lppvdata: *mut *mut core::ffi::c_void,
34602 ) -> windows_core::Result<()> {
34603 unsafe {
34604 (windows_core::Interface::vtable(self).TransportNotify)(
34605 windows_core::Interface::as_raw(self),
34606 lpulflags as _,
34607 lppvdata as _,
34608 )
34609 .ok()
34610 }
34611 }
34612 pub unsafe fn Idle(&self, ulflags: u32) -> windows_core::Result<()> {
34613 unsafe {
34614 (windows_core::Interface::vtable(self).Idle)(
34615 windows_core::Interface::as_raw(self),
34616 ulflags,
34617 )
34618 .ok()
34619 }
34620 }
34621 pub unsafe fn TransportLogoff(&self, ulflags: u32) -> windows_core::Result<()> {
34622 unsafe {
34623 (windows_core::Interface::vtable(self).TransportLogoff)(
34624 windows_core::Interface::as_raw(self),
34625 ulflags,
34626 )
34627 .ok()
34628 }
34629 }
34630 pub unsafe fn SubmitMessage<P1>(
34631 &self,
34632 ulflags: u32,
34633 lpmessage: P1,
34634 lpulmsgref: *mut usize,
34635 lpulreturnparm: *mut usize,
34636 ) -> windows_core::Result<()>
34637 where
34638 P1: windows_core::Param<IMessage>,
34639 {
34640 unsafe {
34641 (windows_core::Interface::vtable(self).SubmitMessage)(
34642 windows_core::Interface::as_raw(self),
34643 ulflags,
34644 lpmessage.param().abi(),
34645 lpulmsgref as _,
34646 lpulreturnparm as _,
34647 )
34648 .ok()
34649 }
34650 }
34651 pub unsafe fn EndMessage(
34652 &self,
34653 ulmsgref: usize,
34654 lpulflags: *mut u32,
34655 ) -> windows_core::Result<()> {
34656 unsafe {
34657 (windows_core::Interface::vtable(self).EndMessage)(
34658 windows_core::Interface::as_raw(self),
34659 ulmsgref,
34660 lpulflags as _,
34661 )
34662 .ok()
34663 }
34664 }
34665 pub unsafe fn Poll(&self, lpulincoming: *mut u32) -> windows_core::Result<()> {
34666 unsafe {
34667 (windows_core::Interface::vtable(self).Poll)(
34668 windows_core::Interface::as_raw(self),
34669 lpulincoming as _,
34670 )
34671 .ok()
34672 }
34673 }
34674 pub unsafe fn StartMessage<P1>(
34675 &self,
34676 ulflags: u32,
34677 lpmessage: P1,
34678 lpulmsgref: *mut usize,
34679 ) -> windows_core::Result<()>
34680 where
34681 P1: windows_core::Param<IMessage>,
34682 {
34683 unsafe {
34684 (windows_core::Interface::vtable(self).StartMessage)(
34685 windows_core::Interface::as_raw(self),
34686 ulflags,
34687 lpmessage.param().abi(),
34688 lpulmsgref as _,
34689 )
34690 .ok()
34691 }
34692 }
34693 pub unsafe fn OpenStatusEntry(
34694 &self,
34695 lpinterface: *mut windows_core::GUID,
34696 ulflags: u32,
34697 lpulobjtype: *mut u32,
34698 lppentry: *mut Option<IMAPIStatus>,
34699 ) -> windows_core::Result<()> {
34700 unsafe {
34701 (windows_core::Interface::vtable(self).OpenStatusEntry)(
34702 windows_core::Interface::as_raw(self),
34703 lpinterface as _,
34704 ulflags,
34705 lpulobjtype as _,
34706 core::mem::transmute(lppentry),
34707 )
34708 .ok()
34709 }
34710 }
34711 pub unsafe fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()> {
34712 unsafe {
34713 (windows_core::Interface::vtable(self).ValidateState)(
34714 windows_core::Interface::as_raw(self),
34715 uluiparam,
34716 ulflags,
34717 )
34718 .ok()
34719 }
34720 }
34721 pub unsafe fn FlushQueues(
34722 &self,
34723 uluiparam: usize,
34724 cbtargettransport: u32,
34725 lptargettransport: *mut ENTRYID,
34726 ulflags: u32,
34727 ) -> windows_core::Result<()> {
34728 unsafe {
34729 (windows_core::Interface::vtable(self).FlushQueues)(
34730 windows_core::Interface::as_raw(self),
34731 uluiparam,
34732 cbtargettransport,
34733 lptargettransport as _,
34734 ulflags,
34735 )
34736 .ok()
34737 }
34738 }
34739}
34740#[repr(C)]
34741pub struct IXPLogon_Vtbl {
34742 pub base__: windows_core::IUnknown_Vtbl,
34743 pub AddressTypes: unsafe extern "system" fn(
34744 *mut core::ffi::c_void,
34745 *mut u32,
34746 *mut u32,
34747 *mut *mut *mut i8,
34748 *mut u32,
34749 *mut *mut *mut MAPIUID,
34750 ) -> windows_core::HRESULT,
34751 pub RegisterOptions: unsafe extern "system" fn(
34752 *mut core::ffi::c_void,
34753 *mut u32,
34754 *mut u32,
34755 *mut *mut OPTIONDATA,
34756 ) -> windows_core::HRESULT,
34757 pub TransportNotify: unsafe extern "system" fn(
34758 *mut core::ffi::c_void,
34759 *mut u32,
34760 *mut *mut core::ffi::c_void,
34761 ) -> windows_core::HRESULT,
34762 pub Idle: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
34763 pub TransportLogoff:
34764 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
34765 pub SubmitMessage: unsafe extern "system" fn(
34766 *mut core::ffi::c_void,
34767 u32,
34768 *mut core::ffi::c_void,
34769 *mut usize,
34770 *mut usize,
34771 ) -> windows_core::HRESULT,
34772 pub EndMessage:
34773 unsafe extern "system" fn(*mut core::ffi::c_void, usize, *mut u32) -> windows_core::HRESULT,
34774 pub Poll: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
34775 pub StartMessage: unsafe extern "system" fn(
34776 *mut core::ffi::c_void,
34777 u32,
34778 *mut core::ffi::c_void,
34779 *mut usize,
34780 ) -> windows_core::HRESULT,
34781 pub OpenStatusEntry: unsafe extern "system" fn(
34782 *mut core::ffi::c_void,
34783 *mut windows_core::GUID,
34784 u32,
34785 *mut u32,
34786 *mut *mut core::ffi::c_void,
34787 ) -> windows_core::HRESULT,
34788 pub ValidateState:
34789 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32) -> windows_core::HRESULT,
34790 pub FlushQueues: unsafe extern "system" fn(
34791 *mut core::ffi::c_void,
34792 usize,
34793 u32,
34794 *mut ENTRYID,
34795 u32,
34796 ) -> windows_core::HRESULT,
34797}
34798pub trait IXPLogon_Impl: windows_core::IUnknownImpl {
34799 fn AddressTypes(
34800 &self,
34801 lpulflags: *mut u32,
34802 lpcadrtype: *mut u32,
34803 lpppadrtypearray: *mut *mut *mut i8,
34804 lpcmapiuid: *mut u32,
34805 lpppuidarray: *mut *mut *mut MAPIUID,
34806 ) -> windows_core::Result<()>;
34807 fn RegisterOptions(
34808 &self,
34809 lpulflags: *mut u32,
34810 lpcoptions: *mut u32,
34811 lppoptions: *mut *mut OPTIONDATA,
34812 ) -> windows_core::Result<()>;
34813 fn TransportNotify(
34814 &self,
34815 lpulflags: *mut u32,
34816 lppvdata: *mut *mut core::ffi::c_void,
34817 ) -> windows_core::Result<()>;
34818 fn Idle(&self, ulflags: u32) -> windows_core::Result<()>;
34819 fn TransportLogoff(&self, ulflags: u32) -> windows_core::Result<()>;
34820 fn SubmitMessage(
34821 &self,
34822 ulflags: u32,
34823 lpmessage: windows_core::Ref<'_, IMessage>,
34824 lpulmsgref: *mut usize,
34825 lpulreturnparm: *mut usize,
34826 ) -> windows_core::Result<()>;
34827 fn EndMessage(&self, ulmsgref: usize, lpulflags: *mut u32) -> windows_core::Result<()>;
34828 fn Poll(&self, lpulincoming: *mut u32) -> windows_core::Result<()>;
34829 fn StartMessage(
34830 &self,
34831 ulflags: u32,
34832 lpmessage: windows_core::Ref<'_, IMessage>,
34833 lpulmsgref: *mut usize,
34834 ) -> windows_core::Result<()>;
34835 fn OpenStatusEntry(
34836 &self,
34837 lpinterface: *mut windows_core::GUID,
34838 ulflags: u32,
34839 lpulobjtype: *mut u32,
34840 lppentry: windows_core::OutRef<'_, IMAPIStatus>,
34841 ) -> windows_core::Result<()>;
34842 fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()>;
34843 fn FlushQueues(
34844 &self,
34845 uluiparam: usize,
34846 cbtargettransport: u32,
34847 lptargettransport: *mut ENTRYID,
34848 ulflags: u32,
34849 ) -> windows_core::Result<()>;
34850}
34851impl IXPLogon_Vtbl {
34852 pub const fn new<Identity: IXPLogon_Impl, const OFFSET: isize>() -> Self {
34853 unsafe extern "system" fn AddressTypes<Identity: IXPLogon_Impl, const OFFSET: isize>(
34854 this: *mut core::ffi::c_void,
34855 lpulflags: *mut u32,
34856 lpcadrtype: *mut u32,
34857 lpppadrtypearray: *mut *mut *mut i8,
34858 lpcmapiuid: *mut u32,
34859 lpppuidarray: *mut *mut *mut MAPIUID,
34860 ) -> windows_core::HRESULT {
34861 unsafe {
34862 let this: &Identity =
34863 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34864 IXPLogon_Impl::AddressTypes(
34865 this,
34866 core::mem::transmute_copy(&lpulflags),
34867 core::mem::transmute_copy(&lpcadrtype),
34868 core::mem::transmute_copy(&lpppadrtypearray),
34869 core::mem::transmute_copy(&lpcmapiuid),
34870 core::mem::transmute_copy(&lpppuidarray),
34871 )
34872 .into()
34873 }
34874 }
34875 unsafe extern "system" fn RegisterOptions<Identity: IXPLogon_Impl, const OFFSET: isize>(
34876 this: *mut core::ffi::c_void,
34877 lpulflags: *mut u32,
34878 lpcoptions: *mut u32,
34879 lppoptions: *mut *mut OPTIONDATA,
34880 ) -> windows_core::HRESULT {
34881 unsafe {
34882 let this: &Identity =
34883 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34884 IXPLogon_Impl::RegisterOptions(
34885 this,
34886 core::mem::transmute_copy(&lpulflags),
34887 core::mem::transmute_copy(&lpcoptions),
34888 core::mem::transmute_copy(&lppoptions),
34889 )
34890 .into()
34891 }
34892 }
34893 unsafe extern "system" fn TransportNotify<Identity: IXPLogon_Impl, const OFFSET: isize>(
34894 this: *mut core::ffi::c_void,
34895 lpulflags: *mut u32,
34896 lppvdata: *mut *mut core::ffi::c_void,
34897 ) -> windows_core::HRESULT {
34898 unsafe {
34899 let this: &Identity =
34900 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34901 IXPLogon_Impl::TransportNotify(
34902 this,
34903 core::mem::transmute_copy(&lpulflags),
34904 core::mem::transmute_copy(&lppvdata),
34905 )
34906 .into()
34907 }
34908 }
34909 unsafe extern "system" fn Idle<Identity: IXPLogon_Impl, const OFFSET: isize>(
34910 this: *mut core::ffi::c_void,
34911 ulflags: u32,
34912 ) -> windows_core::HRESULT {
34913 unsafe {
34914 let this: &Identity =
34915 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34916 IXPLogon_Impl::Idle(this, core::mem::transmute_copy(&ulflags)).into()
34917 }
34918 }
34919 unsafe extern "system" fn TransportLogoff<Identity: IXPLogon_Impl, const OFFSET: isize>(
34920 this: *mut core::ffi::c_void,
34921 ulflags: u32,
34922 ) -> windows_core::HRESULT {
34923 unsafe {
34924 let this: &Identity =
34925 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34926 IXPLogon_Impl::TransportLogoff(this, core::mem::transmute_copy(&ulflags)).into()
34927 }
34928 }
34929 unsafe extern "system" fn SubmitMessage<Identity: IXPLogon_Impl, const OFFSET: isize>(
34930 this: *mut core::ffi::c_void,
34931 ulflags: u32,
34932 lpmessage: *mut core::ffi::c_void,
34933 lpulmsgref: *mut usize,
34934 lpulreturnparm: *mut usize,
34935 ) -> windows_core::HRESULT {
34936 unsafe {
34937 let this: &Identity =
34938 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34939 IXPLogon_Impl::SubmitMessage(
34940 this,
34941 core::mem::transmute_copy(&ulflags),
34942 core::mem::transmute_copy(&lpmessage),
34943 core::mem::transmute_copy(&lpulmsgref),
34944 core::mem::transmute_copy(&lpulreturnparm),
34945 )
34946 .into()
34947 }
34948 }
34949 unsafe extern "system" fn EndMessage<Identity: IXPLogon_Impl, const OFFSET: isize>(
34950 this: *mut core::ffi::c_void,
34951 ulmsgref: usize,
34952 lpulflags: *mut u32,
34953 ) -> windows_core::HRESULT {
34954 unsafe {
34955 let this: &Identity =
34956 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34957 IXPLogon_Impl::EndMessage(
34958 this,
34959 core::mem::transmute_copy(&ulmsgref),
34960 core::mem::transmute_copy(&lpulflags),
34961 )
34962 .into()
34963 }
34964 }
34965 unsafe extern "system" fn Poll<Identity: IXPLogon_Impl, const OFFSET: isize>(
34966 this: *mut core::ffi::c_void,
34967 lpulincoming: *mut u32,
34968 ) -> windows_core::HRESULT {
34969 unsafe {
34970 let this: &Identity =
34971 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34972 IXPLogon_Impl::Poll(this, core::mem::transmute_copy(&lpulincoming)).into()
34973 }
34974 }
34975 unsafe extern "system" fn StartMessage<Identity: IXPLogon_Impl, const OFFSET: isize>(
34976 this: *mut core::ffi::c_void,
34977 ulflags: u32,
34978 lpmessage: *mut core::ffi::c_void,
34979 lpulmsgref: *mut usize,
34980 ) -> windows_core::HRESULT {
34981 unsafe {
34982 let this: &Identity =
34983 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34984 IXPLogon_Impl::StartMessage(
34985 this,
34986 core::mem::transmute_copy(&ulflags),
34987 core::mem::transmute_copy(&lpmessage),
34988 core::mem::transmute_copy(&lpulmsgref),
34989 )
34990 .into()
34991 }
34992 }
34993 unsafe extern "system" fn OpenStatusEntry<Identity: IXPLogon_Impl, const OFFSET: isize>(
34994 this: *mut core::ffi::c_void,
34995 lpinterface: *mut windows_core::GUID,
34996 ulflags: u32,
34997 lpulobjtype: *mut u32,
34998 lppentry: *mut *mut core::ffi::c_void,
34999 ) -> windows_core::HRESULT {
35000 unsafe {
35001 let this: &Identity =
35002 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35003 IXPLogon_Impl::OpenStatusEntry(
35004 this,
35005 core::mem::transmute_copy(&lpinterface),
35006 core::mem::transmute_copy(&ulflags),
35007 core::mem::transmute_copy(&lpulobjtype),
35008 core::mem::transmute_copy(&lppentry),
35009 )
35010 .into()
35011 }
35012 }
35013 unsafe extern "system" fn ValidateState<Identity: IXPLogon_Impl, const OFFSET: isize>(
35014 this: *mut core::ffi::c_void,
35015 uluiparam: usize,
35016 ulflags: u32,
35017 ) -> windows_core::HRESULT {
35018 unsafe {
35019 let this: &Identity =
35020 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35021 IXPLogon_Impl::ValidateState(
35022 this,
35023 core::mem::transmute_copy(&uluiparam),
35024 core::mem::transmute_copy(&ulflags),
35025 )
35026 .into()
35027 }
35028 }
35029 unsafe extern "system" fn FlushQueues<Identity: IXPLogon_Impl, const OFFSET: isize>(
35030 this: *mut core::ffi::c_void,
35031 uluiparam: usize,
35032 cbtargettransport: u32,
35033 lptargettransport: *mut ENTRYID,
35034 ulflags: u32,
35035 ) -> windows_core::HRESULT {
35036 unsafe {
35037 let this: &Identity =
35038 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35039 IXPLogon_Impl::FlushQueues(
35040 this,
35041 core::mem::transmute_copy(&uluiparam),
35042 core::mem::transmute_copy(&cbtargettransport),
35043 core::mem::transmute_copy(&lptargettransport),
35044 core::mem::transmute_copy(&ulflags),
35045 )
35046 .into()
35047 }
35048 }
35049 Self {
35050 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35051 AddressTypes: AddressTypes::<Identity, OFFSET>,
35052 RegisterOptions: RegisterOptions::<Identity, OFFSET>,
35053 TransportNotify: TransportNotify::<Identity, OFFSET>,
35054 Idle: Idle::<Identity, OFFSET>,
35055 TransportLogoff: TransportLogoff::<Identity, OFFSET>,
35056 SubmitMessage: SubmitMessage::<Identity, OFFSET>,
35057 EndMessage: EndMessage::<Identity, OFFSET>,
35058 Poll: Poll::<Identity, OFFSET>,
35059 StartMessage: StartMessage::<Identity, OFFSET>,
35060 OpenStatusEntry: OpenStatusEntry::<Identity, OFFSET>,
35061 ValidateState: ValidateState::<Identity, OFFSET>,
35062 FlushQueues: FlushQueues::<Identity, OFFSET>,
35063 }
35064 }
35065 pub fn matches(iid: &windows_core::GUID) -> bool {
35066 iid == &<IXPLogon as windows_core::Interface>::IID
35067 }
35068}
35069impl windows_core::RuntimeName for IXPLogon {}
35070pub const IXPLogon_AddressTypes: METHODS = METHODS(96i32);
35071pub const IXPLogon_EndMessage: METHODS = METHODS(102i32);
35072pub const IXPLogon_FlushQueues: METHODS = METHODS(107i32);
35073pub const IXPLogon_Idle: METHODS = METHODS(99i32);
35074pub const IXPLogon_OpenStatusEntry: METHODS = METHODS(105i32);
35075pub const IXPLogon_Poll: METHODS = METHODS(103i32);
35076pub const IXPLogon_RegisterOptions: METHODS = METHODS(97i32);
35077pub const IXPLogon_StartMessage: METHODS = METHODS(104i32);
35078pub const IXPLogon_SubmitMessage: METHODS = METHODS(101i32);
35079pub const IXPLogon_TransportLogoff: METHODS = METHODS(100i32);
35080pub const IXPLogon_TransportNotify: METHODS = METHODS(98i32);
35081pub const IXPLogon_ValidateState: METHODS = METHODS(106i32);
35082windows_core::imp::define_interface!(
35083 IXPProvider,
35084 IXPProvider_Vtbl,
35085 0x00020312_0000_0000_c000_000000000046
35086);
35087windows_core::imp::interface_hierarchy!(IXPProvider, windows_core::IUnknown);
35088impl IXPProvider {
35089 pub unsafe fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
35090 unsafe {
35091 (windows_core::Interface::vtable(self).Shutdown)(
35092 windows_core::Interface::as_raw(self),
35093 lpulflags as _,
35094 )
35095 .ok()
35096 }
35097 }
35098 pub unsafe fn TransportLogon<P0>(
35099 &self,
35100 lpmapisup: P0,
35101 uluiparam: usize,
35102 lpszprofilename: *const i8,
35103 lpulflags: *mut u32,
35104 lppmapierror: *mut *mut MAPIERROR,
35105 lppxplogon: *mut Option<IXPLogon>,
35106 ) -> windows_core::Result<()>
35107 where
35108 P0: windows_core::Param<IMAPISupport>,
35109 {
35110 unsafe {
35111 (windows_core::Interface::vtable(self).TransportLogon)(
35112 windows_core::Interface::as_raw(self),
35113 lpmapisup.param().abi(),
35114 uluiparam,
35115 lpszprofilename,
35116 lpulflags as _,
35117 lppmapierror as _,
35118 core::mem::transmute(lppxplogon),
35119 )
35120 .ok()
35121 }
35122 }
35123}
35124#[repr(C)]
35125pub struct IXPProvider_Vtbl {
35126 pub base__: windows_core::IUnknown_Vtbl,
35127 pub Shutdown:
35128 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
35129 pub TransportLogon: unsafe extern "system" fn(
35130 *mut core::ffi::c_void,
35131 *mut core::ffi::c_void,
35132 usize,
35133 *const i8,
35134 *mut u32,
35135 *mut *mut MAPIERROR,
35136 *mut *mut core::ffi::c_void,
35137 ) -> windows_core::HRESULT,
35138}
35139pub trait IXPProvider_Impl: windows_core::IUnknownImpl {
35140 fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
35141 fn TransportLogon(
35142 &self,
35143 lpmapisup: windows_core::Ref<'_, IMAPISupport>,
35144 uluiparam: usize,
35145 lpszprofilename: *const i8,
35146 lpulflags: *mut u32,
35147 lppmapierror: *mut *mut MAPIERROR,
35148 lppxplogon: windows_core::OutRef<'_, IXPLogon>,
35149 ) -> windows_core::Result<()>;
35150}
35151impl IXPProvider_Vtbl {
35152 pub const fn new<Identity: IXPProvider_Impl, const OFFSET: isize>() -> Self {
35153 unsafe extern "system" fn Shutdown<Identity: IXPProvider_Impl, const OFFSET: isize>(
35154 this: *mut core::ffi::c_void,
35155 lpulflags: *mut u32,
35156 ) -> windows_core::HRESULT {
35157 unsafe {
35158 let this: &Identity =
35159 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35160 IXPProvider_Impl::Shutdown(this, core::mem::transmute_copy(&lpulflags)).into()
35161 }
35162 }
35163 unsafe extern "system" fn TransportLogon<
35164 Identity: IXPProvider_Impl,
35165 const OFFSET: isize,
35166 >(
35167 this: *mut core::ffi::c_void,
35168 lpmapisup: *mut core::ffi::c_void,
35169 uluiparam: usize,
35170 lpszprofilename: *const i8,
35171 lpulflags: *mut u32,
35172 lppmapierror: *mut *mut MAPIERROR,
35173 lppxplogon: *mut *mut core::ffi::c_void,
35174 ) -> windows_core::HRESULT {
35175 unsafe {
35176 let this: &Identity =
35177 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35178 IXPProvider_Impl::TransportLogon(
35179 this,
35180 core::mem::transmute_copy(&lpmapisup),
35181 core::mem::transmute_copy(&uluiparam),
35182 core::mem::transmute_copy(&lpszprofilename),
35183 core::mem::transmute_copy(&lpulflags),
35184 core::mem::transmute_copy(&lppmapierror),
35185 core::mem::transmute_copy(&lppxplogon),
35186 )
35187 .into()
35188 }
35189 }
35190 Self {
35191 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35192 Shutdown: Shutdown::<Identity, OFFSET>,
35193 TransportLogon: TransportLogon::<Identity, OFFSET>,
35194 }
35195 }
35196 pub fn matches(iid: &windows_core::GUID) -> bool {
35197 iid == &<IXPProvider as windows_core::Interface>::IID
35198 }
35199}
35200impl windows_core::RuntimeName for IXPProvider {}
35201pub const IXPProvider_Shutdown: METHODS = METHODS(94i32);
35202pub const IXPProvider_TransportLogon: METHODS = METHODS(95i32);
35203pub const KEEP_OPEN_READONLY: u32 = 1u32;
35204pub const KEEP_OPEN_READWRITE: u32 = 2u32;
35205pub type LAUNCHWIZARDENTRY = Option<
35206 unsafe extern "system" fn(
35207 hparentwnd: windows::Win32::Foundation::HWND,
35208 ulflags: u32,
35209 lppszservicenametoadd: *mut *mut i8,
35210 cbbuffermax: u32,
35211 lpsznewprofilename: *mut i8,
35212 ) -> windows_core::HRESULT,
35213>;
35214pub const LAUNCHWIZARDENTRYNAME: windows_core::PCSTR = windows_core::s!("LAUNCHWIZARD");
35215pub const LIBID_MIMEOLE: windows_core::GUID =
35216 windows_core::GUID::from_u128(0xe4b28371_83b0_11d0_8259_00c04fd85ab4);
35217pub const LOCK_BLOCKING_MID_LOCK: u32 = 2u32;
35218pub const LOCK_NON_PERSISTENT: u32 = 1u32;
35219pub const LOCK_NULL_RESOURCE: u32 = 4u32;
35220pub const LOCK_READ_ACCESS_CHECK_ONLY: u32 = 8u32;
35221pub const LOCK_RESERVED: u32 = 2147483648u32;
35222pub const LOCK_WRITE_THROUGH_GOP: u32 = 65536u32;
35223pub const LOGOFF_ABORT: u32 = 8u32;
35224pub const LOGOFF_COMPLETE: u32 = 65536u32;
35225pub const LOGOFF_HURRY: u32 = 2147483648u32;
35226pub const LOGOFF_INBOUND: u32 = 131072u32;
35227pub const LOGOFF_NORMAL: u32 = 1u32;
35228pub const LOGOFF_NO_WAIT: u32 = 1u32;
35229pub const LOGOFF_ORDERLY: u32 = 2u32;
35230pub const LOGOFF_OUTBOUND: u32 = 262144u32;
35231pub const LOGOFF_OUTBOUND_QUEUE: u32 = 524288u32;
35232pub const LOGOFF_PURGE: u32 = 4u32;
35233pub const LOGOFF_QUIET: u32 = 16u32;
35234pub const LOGON_CHANGED: u32 = 8u32;
35235pub const LOGON_NO_CONNECT: u32 = 4u32;
35236pub const LOGON_NO_DIALOG: u32 = 1u32;
35237pub const LOGON_NO_INBOUND: u32 = 8u32;
35238pub const LOGON_NO_OUTBOUND: u32 = 16u32;
35239pub const LOGON_SP_IDLE: u32 = 65536u32;
35240pub const LOGON_SP_NEWPW: u32 = 4u32;
35241pub const LOGON_SP_POLL: u32 = 131072u32;
35242pub const LOGON_SP_PROMPT: u32 = 2u32;
35243pub const LOGON_SP_RESOLVE: u32 = 262144u32;
35244pub const LOGON_SP_TRANSPORT: u32 = 1u32;
35245pub type LPALLOCATEBUFFER =
35246 Option<unsafe extern "system" fn(cbsize: u32, lppbuffer: *mut *mut core::ffi::c_void) -> i32>;
35247pub type LPALLOCATEMORE = Option<
35248 unsafe extern "system" fn(
35249 cbsize: u32,
35250 lpobject: *mut core::ffi::c_void,
35251 lppbuffer: *mut *mut core::ffi::c_void,
35252 ) -> i32,
35253>;
35254pub type LPCREATECONVERSATIONINDEX = Option<
35255 unsafe extern "system" fn(
35256 cbparent: u32,
35257 lpbparent: *mut u8,
35258 lpcbconvindex: *mut u32,
35259 lppbconvindex: *mut *mut u8,
35260 ) -> i32,
35261>;
35262pub type LPDISPATCHNOTIFICATIONS =
35263 Option<unsafe extern "system" fn(ulflags: u32) -> windows_core::HRESULT>;
35264pub type LPFGETCOMPONENTPATH = Option<unsafe extern "system" fn() -> windows_core::BOOL>;
35265pub type LPFNABSDI = Option<
35266 unsafe extern "system" fn(
35267 uluiparam: usize,
35268 lpvmsg: *mut core::ffi::c_void,
35269 ) -> windows_core::BOOL,
35270>;
35271pub type LPFNBUTTON = Option<
35272 unsafe extern "system" fn(
35273 uluiparam: usize,
35274 lpvcontext: *mut core::ffi::c_void,
35275 cbentryid: u32,
35276 lpselection: *mut ENTRYID,
35277 ulflags: u32,
35278 ) -> i32,
35279>;
35280pub type LPFNDISMISS =
35281 Option<unsafe extern "system" fn(uluiparam: usize, lpvcontext: *mut core::ffi::c_void)>;
35282pub type LPFREEBUFFER = Option<unsafe extern "system" fn(lpbuffer: *mut core::ffi::c_void) -> u32>;
35283pub type LPLAUNCHWIZARDENTRY = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35284pub type LPMAPIADDRESS = Option<
35285 unsafe extern "system" fn(
35286 lhsession: usize,
35287 uluiparam: usize,
35288 lpszcaption: windows_core::PCSTR,
35289 neditfields: u32,
35290 lpszlabels: windows_core::PCSTR,
35291 nrecips: u32,
35292 lprecips: *mut MapiRecipDesc,
35293 flflags: u32,
35294 ulreserved: u32,
35295 lpnnewrecips: *mut u32,
35296 lppnewrecips: *mut *mut MapiRecipDesc,
35297 ) -> u32,
35298>;
35299pub type LPMAPIADMINPROFILES = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35300pub type LPMAPIALLOCATEBUFFER = Option<unsafe extern "system" fn() -> i32>;
35301pub type LPMAPIALLOCATEMORE = Option<unsafe extern "system" fn() -> i32>;
35302pub type LPMAPIDELETEMAIL = Option<
35303 unsafe extern "system" fn(
35304 lhsession: usize,
35305 uluiparam: usize,
35306 lpszmessageid: windows_core::PCSTR,
35307 flflags: u32,
35308 ulreserved: u32,
35309 ) -> u32,
35310>;
35311pub type LPMAPIDETAILS = Option<
35312 unsafe extern "system" fn(
35313 lhsession: usize,
35314 uluiparam: usize,
35315 lprecip: *mut MapiRecipDesc,
35316 flflags: u32,
35317 ulreserved: u32,
35318 ) -> u32,
35319>;
35320pub type LPMAPIFINDNEXT = Option<
35321 unsafe extern "system" fn(
35322 lhsession: usize,
35323 uluiparam: usize,
35324 lpszmessagetype: windows_core::PCSTR,
35325 lpszseedmessageid: windows_core::PCSTR,
35326 flflags: u32,
35327 ulreserved: u32,
35328 lpszmessageid: windows_core::PCSTR,
35329 ) -> u32,
35330>;
35331pub type LPMAPIFREEBUFFER = Option<unsafe extern "system" fn() -> u32>;
35332pub type LPMAPIINITIALIZE = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35333pub type LPMAPILOGOFF = Option<
35334 unsafe extern "system" fn(
35335 lhsession: usize,
35336 uluiparam: usize,
35337 flflags: u32,
35338 ulreserved: u32,
35339 ) -> u32,
35340>;
35341pub type LPMAPILOGON = Option<
35342 unsafe extern "system" fn(
35343 uluiparam: usize,
35344 lpszprofilename: windows_core::PCSTR,
35345 lpszpassword: windows_core::PCSTR,
35346 flflags: u32,
35347 ulreserved: u32,
35348 lplhsession: *mut usize,
35349 ) -> u32,
35350>;
35351pub type LPMAPILOGONEX = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35352pub type LPMAPIREADMAIL = Option<
35353 unsafe extern "system" fn(
35354 lhsession: usize,
35355 uluiparam: usize,
35356 lpszmessageid: windows_core::PCSTR,
35357 flflags: u32,
35358 ulreserved: u32,
35359 lppmessage: *mut *mut MapiMessage,
35360 ) -> u32,
35361>;
35362pub type LPMAPIRESOLVENAME = Option<
35363 unsafe extern "system" fn(
35364 lhsession: usize,
35365 uluiparam: usize,
35366 lpszname: windows_core::PCSTR,
35367 flflags: u32,
35368 ulreserved: u32,
35369 lpprecip: *mut *mut MapiRecipDesc,
35370 ) -> u32,
35371>;
35372pub type LPMAPISAVEMAIL = Option<
35373 unsafe extern "system" fn(
35374 lhsession: usize,
35375 uluiparam: usize,
35376 lpmessage: *mut MapiMessage,
35377 flflags: u32,
35378 ulreserved: u32,
35379 lpszmessageid: windows_core::PCSTR,
35380 ) -> u32,
35381>;
35382pub type LPMAPISENDDOCUMENTS = Option<
35383 unsafe extern "system" fn(
35384 uluiparam: usize,
35385 lpszdelimchar: windows_core::PCSTR,
35386 lpszfilepaths: windows_core::PCSTR,
35387 lpszfilenames: windows_core::PCSTR,
35388 ulreserved: u32,
35389 ) -> u32,
35390>;
35391pub type LPMAPISENDMAIL = Option<
35392 unsafe extern "system" fn(
35393 lhsession: usize,
35394 uluiparam: usize,
35395 lpmessage: *mut MapiMessage,
35396 flflags: u32,
35397 ulreserved: u32,
35398 ) -> u32,
35399>;
35400pub type LPMAPIUNINITIALIZE = Option<unsafe extern "system" fn()>;
35401pub type LPMSGSERVICEENTRY = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35402pub type LPNOTIFCALLBACK = Option<
35403 unsafe extern "system" fn(
35404 lpvcontext: *mut core::ffi::c_void,
35405 cnotification: u32,
35406 lpnotifications: *mut NOTIFICATION,
35407 ) -> i32,
35408>;
35409pub type LPOPENSTREAMONFILE = Option<
35410 unsafe extern "system" fn(
35411 lpallocatebuffer: LPALLOCATEBUFFER,
35412 lpfreebuffer: LPFREEBUFFER,
35413 ulflags: u32,
35414 lpszfilename: *const i8,
35415 lpszprefix: *const i8,
35416 lppstream: windows_core::OutRef<'_, windows::Win32::System::Com::IStream>,
35417 ) -> windows_core::HRESULT,
35418>;
35419pub type LPSERVICEWIZARDDLGPROC = Option<unsafe extern "system" fn() -> windows_core::BOOL>;
35420pub type LPWIZARDENTRY = Option<unsafe extern "system" fn() -> u32>;
35421pub type MAPIADMINPROFILES = Option<
35422 unsafe extern "system" fn(
35423 ulflags: u32,
35424 lppprofadmin: windows_core::OutRef<'_, IProfAdmin>,
35425 ) -> windows_core::HRESULT,
35426>;
35427pub type MAPIALLOCATEBUFFER =
35428 Option<unsafe extern "system" fn(cbsize: u32, lppbuffer: *mut *mut core::ffi::c_void) -> i32>;
35429pub type MAPIALLOCATEMORE = Option<
35430 unsafe extern "system" fn(
35431 cbsize: u32,
35432 lpobject: *mut core::ffi::c_void,
35433 lppbuffer: *mut *mut core::ffi::c_void,
35434 ) -> i32,
35435>;
35436#[repr(C)]
35437#[derive(Clone, Copy, Debug, PartialEq)]
35438pub struct MAPIERROR {
35439 pub ulVersion: u32,
35440 pub lpszError: *mut i8,
35441 pub lpszComponent: *mut i8,
35442 pub ulLowLevelError: u32,
35443 pub ulContext: u32,
35444}
35445impl Default for MAPIERROR {
35446 fn default() -> Self {
35447 unsafe { core::mem::zeroed() }
35448 }
35449}
35450pub const MAPIFORM_CPU_AXP: u32 = 3u32;
35451pub const MAPIFORM_CPU_M68: u32 = 5u32;
35452pub const MAPIFORM_CPU_MIP: u32 = 2u32;
35453pub const MAPIFORM_CPU_PPC: u32 = 4u32;
35454pub const MAPIFORM_CPU_X64: u32 = 6u32;
35455pub const MAPIFORM_CPU_X86: u32 = 1u32;
35456pub const MAPIFORM_EXACTMATCH: u32 = 32u32;
35457pub const MAPIFORM_INSTALL_DIALOG: u32 = 8u32;
35458pub const MAPIFORM_INSTALL_OVERWRITEONCONFLICT: u32 = 16u32;
35459pub const MAPIFORM_OS_MAC_7x: u32 = 4u32;
35460pub const MAPIFORM_OS_WINNT_35: u32 = 2u32;
35461pub const MAPIFORM_OS_WINNT_40: u32 = 5u32;
35462pub const MAPIFORM_OS_WINNT_50: u32 = 6u32;
35463pub const MAPIFORM_OS_WINNT_60: u32 = 7u32;
35464pub const MAPIFORM_OS_WIN_31: u32 = 1u32;
35465pub const MAPIFORM_OS_WIN_95: u32 = 3u32;
35466pub const MAPIFORM_SELECT_ALL_REGISTRIES: u32 = 0u32;
35467pub const MAPIFORM_SELECT_FOLDER_REGISTRY_ONLY: u32 = 1u32;
35468pub const MAPIFORM_SELECT_NON_FOLDER_REGISTRY_ONLY: u32 = 2u32;
35469pub type MAPIFREEBUFFER =
35470 Option<unsafe extern "system" fn(lpbuffer: *mut core::ffi::c_void) -> u32>;
35471#[repr(C)]
35472#[derive(Clone, Copy, Debug, PartialEq)]
35473pub struct MAPIINIT {
35474 pub ulVersion: u32,
35475 pub ulFlags: u32,
35476}
35477impl Default for MAPIINIT {
35478 fn default() -> Self {
35479 unsafe { core::mem::zeroed() }
35480 }
35481}
35482pub type MAPIINITIALIZE =
35483 Option<unsafe extern "system" fn(lpmapiinit: *mut core::ffi::c_void) -> windows_core::HRESULT>;
35484pub type MAPILOGONEX = Option<
35485 unsafe extern "system" fn(
35486 uluiparam: usize,
35487 lpszprofilename: *const i8,
35488 lpszpassword: *const i8,
35489 ulflags: u32,
35490 lppsession: windows_core::OutRef<'_, IMAPISession>,
35491 ) -> windows_core::HRESULT,
35492>;
35493#[repr(C)]
35494#[derive(Clone, Copy)]
35495pub struct MAPINAMEID {
35496 pub lpguid: *mut windows_core::GUID,
35497 pub ulKind: u32,
35498 pub Kind: MAPINAMEID_0,
35499}
35500impl Default for MAPINAMEID {
35501 fn default() -> Self {
35502 unsafe { core::mem::zeroed() }
35503 }
35504}
35505#[repr(C)]
35506#[derive(Clone, Copy)]
35507pub union MAPINAMEID_0 {
35508 pub lID_Reserved: isize,
35509 pub lID: i32,
35510 pub lpwstrName: windows_core::PWSTR,
35511}
35512impl Default for MAPINAMEID_0 {
35513 fn default() -> Self {
35514 unsafe { core::mem::zeroed() }
35515 }
35516}
35517#[repr(C)]
35518#[derive(Clone, Copy, Debug, PartialEq)]
35519pub struct MAPIUID {
35520 pub ab: [u8; 16],
35521}
35522impl Default for MAPIUID {
35523 fn default() -> Self {
35524 unsafe { core::mem::zeroed() }
35525 }
35526}
35527pub type MAPIUNINITIALIZE = Option<unsafe extern "system" fn()>;
35528pub const MAPI_AB: u32 = 34u32;
35529pub const MAPI_ABCONT: u32 = 4u32;
35530pub const MAPI_AB_NOMODIFY: u32 = 1024u32;
35531pub const MAPI_AB_PROVIDER: u32 = 35u32;
35532pub const MAPI_ACCESS_CREATE_ASSOCIATED: u32 = 32u32;
35533pub const MAPI_ACCESS_CREATE_CONTENTS: u32 = 16u32;
35534pub const MAPI_ACCESS_CREATE_HIERARCHY: u32 = 8u32;
35535pub const MAPI_ACCESS_DELETE: u32 = 4u32;
35536pub const MAPI_ACCESS_MODIFY: u32 = 1u32;
35537pub const MAPI_ACCESS_READ: u32 = 2u32;
35538pub const MAPI_ADDRBOOK: u32 = 2u32;
35539pub const MAPI_ALLOW_OTHERS: u32 = 8u32;
35540pub const MAPI_AMBIGUOUS: u32 = 1u32;
35541pub const MAPI_ASSOCIATED: u32 = 64u32;
35542pub const MAPI_ATTACH: u32 = 7u32;
35543pub const MAPI_BCC: u32 = 3u32;
35544pub const MAPI_BEST_ACCESS: u32 = 16u32;
35545pub const MAPI_BG_SESSION: u32 = 2097152u32;
35546pub const MAPI_BODY_AS_FILE: u32 = 512u32;
35547pub const MAPI_CACHE_ONLY: u32 = 16384u32;
35548pub const MAPI_CC: u32 = 2u32;
35549pub const MAPI_COMPOUND: u32 = 128u32;
35550pub const MAPI_CREATE: u32 = 2u32;
35551pub const MAPI_DECLINE_OK: u32 = 4u32;
35552pub const MAPI_DEFAULT_SERVICES: u32 = 1u32;
35553pub const MAPI_DEFAULT_STORE: u32 = 1u32;
35554pub const MAPI_DEFERRED_ERRORS: u32 = 8u32;
35555pub const MAPI_DIALOG: u32 = 8u32;
35556pub const MAPI_DIM: u32 = 1u32;
35557pub const MAPI_DISABLED: u32 = 1u32;
35558pub const MAPI_DISTLIST: u32 = 8u32;
35559pub const MAPI_ENABLED: u32 = 0u32;
35560pub const MAPI_ENVELOPE_ONLY: u32 = 64u32;
35561pub const MAPI_ERROR_VERSION: i32 = 0i32;
35562pub const MAPI_EXPLICIT_PROFILE: u32 = 16u32;
35563pub const MAPI_EXTENDED: u32 = 32u32;
35564pub const MAPI_EXTENDEDCALLBACKS: u32 = 1024u32;
35565pub const MAPI_E_ACCESS_DENIED: u32 = 6u32;
35566pub const MAPI_E_ACCOUNT_DISABLED: windows_core::HRESULT =
35567 windows_core::HRESULT(0x80040124_u32 as _);
35568pub const MAPI_E_AMBIGUOUS_RECIP: windows_core::HRESULT =
35569 windows_core::HRESULT(0x80040700_u32 as _);
35570pub const MAPI_E_AMBIGUOUS_RECIPIENT: u32 = 21u32;
35571pub const MAPI_E_AMBIG_RECIP: u32 = 21u32;
35572pub const MAPI_E_ATTACHMENT_NOT_FOUND: u32 = 11u32;
35573pub const MAPI_E_ATTACHMENT_OPEN_FAILURE: u32 = 12u32;
35574pub const MAPI_E_ATTACHMENT_WRITE_FAILURE: u32 = 13u32;
35575pub const MAPI_E_BAD_CHARWIDTH: windows_core::HRESULT = windows_core::HRESULT(0x80040103_u32 as _);
35576pub const MAPI_E_BAD_COLUMN: windows_core::HRESULT = windows_core::HRESULT(0x80040118_u32 as _);
35577pub const MAPI_E_BAD_RECIPTYPE: u32 = 15u32;
35578pub const MAPI_E_BAD_VALUE: windows_core::HRESULT = windows_core::HRESULT(0x80040301_u32 as _);
35579pub const MAPI_E_BUSY: windows_core::HRESULT = windows_core::HRESULT(0x8004010B_u32 as _);
35580pub const MAPI_E_CALL_FAILED: windows_core::HRESULT = windows_core::HRESULT(0x80004005_u32 as _);
35581pub const MAPI_E_CANCEL: windows_core::HRESULT = windows_core::HRESULT(0x80040501_u32 as _);
35582pub const MAPI_E_COLLISION: windows_core::HRESULT = windows_core::HRESULT(0x80040604_u32 as _);
35583pub const MAPI_E_COMPUTED: windows_core::HRESULT = windows_core::HRESULT(0x8004011A_u32 as _);
35584pub const MAPI_E_CORRUPT_DATA: windows_core::HRESULT = windows_core::HRESULT(0x8004011B_u32 as _);
35585pub const MAPI_E_CORRUPT_STORE: windows_core::HRESULT = windows_core::HRESULT(0x80040600_u32 as _);
35586pub const MAPI_E_DECLINE_COPY: windows_core::HRESULT = windows_core::HRESULT(0x80040306_u32 as _);
35587pub const MAPI_E_DISK_ERROR: windows_core::HRESULT = windows_core::HRESULT(0x80040116_u32 as _);
35588pub const MAPI_E_DISK_FULL: u32 = 4u32;
35589pub const MAPI_E_END_OF_SESSION: windows_core::HRESULT = windows_core::HRESULT(0x80040200_u32 as _);
35590pub const MAPI_E_EXTENDED_ERROR: windows_core::HRESULT = windows_core::HRESULT(0x80040119_u32 as _);
35591pub const MAPI_E_FAILONEPROVIDER: windows_core::HRESULT =
35592 windows_core::HRESULT(0x8004011D_u32 as _);
35593pub const MAPI_E_FAILURE: u32 = 2u32;
35594pub const MAPI_E_FOLDER_CYCLE: windows_core::HRESULT = windows_core::HRESULT(0x8004060B_u32 as _);
35595pub const MAPI_E_HAS_FOLDERS: windows_core::HRESULT = windows_core::HRESULT(0x80040609_u32 as _);
35596pub const MAPI_E_HAS_MESSAGES: windows_core::HRESULT = windows_core::HRESULT(0x8004060A_u32 as _);
35597pub const MAPI_E_INSUFFICIENT_MEMORY: u32 = 5u32;
35598pub const MAPI_E_INTERFACE_NOT_SUPPORTED: windows_core::HRESULT =
35599 windows_core::HRESULT(0x80004002_u32 as _);
35600pub const MAPI_E_INVALID_ACCESS_TIME: windows_core::HRESULT =
35601 windows_core::HRESULT(0x80040123_u32 as _);
35602pub const MAPI_E_INVALID_BOOKMARK: windows_core::HRESULT =
35603 windows_core::HRESULT(0x80040405_u32 as _);
35604pub const MAPI_E_INVALID_EDITFIELDS: u32 = 24u32;
35605pub const MAPI_E_INVALID_ENTRYID: windows_core::HRESULT =
35606 windows_core::HRESULT(0x80040107_u32 as _);
35607pub const MAPI_E_INVALID_MESSAGE: u32 = 17u32;
35608pub const MAPI_E_INVALID_OBJECT: windows_core::HRESULT = windows_core::HRESULT(0x80040108_u32 as _);
35609pub const MAPI_E_INVALID_PARAMETER: windows_core::HRESULT =
35610 windows_core::HRESULT(0x80070057_u32 as _);
35611pub const MAPI_E_INVALID_RECIPS: u32 = 25u32;
35612pub const MAPI_E_INVALID_SESSION: u32 = 19u32;
35613pub const MAPI_E_INVALID_TYPE: windows_core::HRESULT = windows_core::HRESULT(0x80040302_u32 as _);
35614pub const MAPI_E_INVALID_WORKSTATION_ACCOUNT: windows_core::HRESULT =
35615 windows_core::HRESULT(0x80040122_u32 as _);
35616pub const MAPI_E_LOGIN_FAILURE: u32 = 3u32;
35617pub const MAPI_E_LOGON_FAILED: windows_core::HRESULT = windows_core::HRESULT(0x80040111_u32 as _);
35618pub const MAPI_E_LOGON_FAILURE: u32 = 3u32;
35619pub const MAPI_E_MESSAGE_IN_USE: u32 = 22u32;
35620pub const MAPI_E_MISSING_REQUIRED_COLUMN: windows_core::HRESULT =
35621 windows_core::HRESULT(0x80040202_u32 as _);
35622pub const MAPI_E_NETWORK_ERROR: windows_core::HRESULT = windows_core::HRESULT(0x80040115_u32 as _);
35623pub const MAPI_E_NETWORK_FAILURE: u32 = 23u32;
35624pub const MAPI_E_NON_STANDARD: windows_core::HRESULT = windows_core::HRESULT(0x80040606_u32 as _);
35625pub const MAPI_E_NOT_ENOUGH_DISK: windows_core::HRESULT =
35626 windows_core::HRESULT(0x8004010D_u32 as _);
35627pub const MAPI_E_NOT_ENOUGH_MEMORY: windows_core::HRESULT =
35628 windows_core::HRESULT(0x8007000E_u32 as _);
35629pub const MAPI_E_NOT_ENOUGH_RESOURCES: windows_core::HRESULT =
35630 windows_core::HRESULT(0x8004010E_u32 as _);
35631pub const MAPI_E_NOT_FOUND: windows_core::HRESULT = windows_core::HRESULT(0x8004010F_u32 as _);
35632pub const MAPI_E_NOT_INITIALIZED: windows_core::HRESULT =
35633 windows_core::HRESULT(0x80040605_u32 as _);
35634pub const MAPI_E_NOT_IN_QUEUE: windows_core::HRESULT = windows_core::HRESULT(0x80040601_u32 as _);
35635pub const MAPI_E_NOT_ME: windows_core::HRESULT = windows_core::HRESULT(0x80040502_u32 as _);
35636pub const MAPI_E_NOT_SUPPORTED: u32 = 26u32;
35637pub const MAPI_E_NO_ACCESS: windows_core::HRESULT = windows_core::HRESULT(0x80070005_u32 as _);
35638pub const MAPI_E_NO_MESSAGES: u32 = 16u32;
35639pub const MAPI_E_NO_RECIPIENTS: windows_core::HRESULT = windows_core::HRESULT(0x80040607_u32 as _);
35640pub const MAPI_E_NO_SUPPORT: windows_core::HRESULT = windows_core::HRESULT(0x80040102_u32 as _);
35641pub const MAPI_E_NO_SUPPRESS: windows_core::HRESULT = windows_core::HRESULT(0x80040602_u32 as _);
35642pub const MAPI_E_OBJECT_CHANGED: windows_core::HRESULT = windows_core::HRESULT(0x80040109_u32 as _);
35643pub const MAPI_E_OBJECT_DELETED: windows_core::HRESULT = windows_core::HRESULT(0x8004010A_u32 as _);
35644pub const MAPI_E_PASSWORD_CHANGE_REQUIRED: windows_core::HRESULT =
35645 windows_core::HRESULT(0x80040120_u32 as _);
35646pub const MAPI_E_PASSWORD_EXPIRED: windows_core::HRESULT =
35647 windows_core::HRESULT(0x80040121_u32 as _);
35648pub const MAPI_E_SESSION_LIMIT: windows_core::HRESULT = windows_core::HRESULT(0x80040112_u32 as _);
35649pub const MAPI_E_STRING_TOO_LONG: windows_core::HRESULT =
35650 windows_core::HRESULT(0x80040105_u32 as _);
35651pub const MAPI_E_SUBMITTED: windows_core::HRESULT = windows_core::HRESULT(0x80040608_u32 as _);
35652pub const MAPI_E_TABLE_EMPTY: windows_core::HRESULT = windows_core::HRESULT(0x80040402_u32 as _);
35653pub const MAPI_E_TABLE_TOO_BIG: windows_core::HRESULT = windows_core::HRESULT(0x80040403_u32 as _);
35654pub const MAPI_E_TEXT_TOO_LARGE: u32 = 18u32;
35655pub const MAPI_E_TIMEOUT: windows_core::HRESULT = windows_core::HRESULT(0x80040401_u32 as _);
35656pub const MAPI_E_TOO_BIG: windows_core::HRESULT = windows_core::HRESULT(0x80040305_u32 as _);
35657pub const MAPI_E_TOO_COMPLEX: windows_core::HRESULT = windows_core::HRESULT(0x80040117_u32 as _);
35658pub const MAPI_E_TOO_MANY_FILES: u32 = 9u32;
35659pub const MAPI_E_TOO_MANY_RECIPIENTS: u32 = 10u32;
35660pub const MAPI_E_TOO_MANY_SESSIONS: u32 = 8u32;
35661pub const MAPI_E_TYPE_NOT_SUPPORTED: u32 = 20u32;
35662pub const MAPI_E_TYPE_NO_SUPPORT: windows_core::HRESULT =
35663 windows_core::HRESULT(0x80040303_u32 as _);
35664pub const MAPI_E_UNABLE_TO_ABORT: windows_core::HRESULT =
35665 windows_core::HRESULT(0x80040114_u32 as _);
35666pub const MAPI_E_UNABLE_TO_COMPLETE: windows_core::HRESULT =
35667 windows_core::HRESULT(0x80040400_u32 as _);
35668pub const MAPI_E_UNCONFIGURED: windows_core::HRESULT = windows_core::HRESULT(0x8004011C_u32 as _);
35669pub const MAPI_E_UNEXPECTED_ID: windows_core::HRESULT = windows_core::HRESULT(0x80040307_u32 as _);
35670pub const MAPI_E_UNEXPECTED_TYPE: windows_core::HRESULT =
35671 windows_core::HRESULT(0x80040304_u32 as _);
35672pub const MAPI_E_UNKNOWN_CPID: windows_core::HRESULT = windows_core::HRESULT(0x8004011E_u32 as _);
35673pub const MAPI_E_UNKNOWN_ENTRYID: windows_core::HRESULT =
35674 windows_core::HRESULT(0x80040201_u32 as _);
35675pub const MAPI_E_UNKNOWN_FLAGS: windows_core::HRESULT = windows_core::HRESULT(0x80040106_u32 as _);
35676pub const MAPI_E_UNKNOWN_LCID: windows_core::HRESULT = windows_core::HRESULT(0x8004011F_u32 as _);
35677pub const MAPI_E_UNKNOWN_RECIPIENT: u32 = 14u32;
35678pub const MAPI_E_USER_ABORT: u32 = 1u32;
35679pub const MAPI_E_USER_CANCEL: windows_core::HRESULT = windows_core::HRESULT(0x80040113_u32 as _);
35680pub const MAPI_E_VERSION: windows_core::HRESULT = windows_core::HRESULT(0x80040110_u32 as _);
35681pub const MAPI_E_WAIT: windows_core::HRESULT = windows_core::HRESULT(0x80040500_u32 as _);
35682pub const MAPI_FOLDER: u32 = 3u32;
35683pub const MAPI_FORCE_CREATE: u32 = 1u32;
35684pub const MAPI_FORCE_DOWNLOAD: u32 = 4096u32;
35685pub const MAPI_FORMINFO: u32 = 12u32;
35686pub const MAPI_FULL_IPM_TREE: u32 = 2u32;
35687pub const MAPI_GUARANTEE_FIFO: u32 = 256u32;
35688pub const MAPI_HOOK_PROVIDER: u32 = 40u32;
35689pub const MAPI_INIT_VERSION: u32 = 0u32;
35690pub const MAPI_LOGOFF_SHARED: u32 = 1u32;
35691pub const MAPI_LOGOFF_UI: u32 = 2u32;
35692pub const MAPI_LOGON_UI: u32 = 1u32;
35693pub const MAPI_LONG_MSGID: u32 = 16384u32;
35694pub const MAPI_MAILUSER: u32 = 6u32;
35695pub const MAPI_MESSAGE: u32 = 5u32;
35696pub const MAPI_MESSAGE_BEHAVIOR_FOLDER: u32 = 1u32;
35697pub const MAPI_MESSAGE_BEHAVIOR_IPM: u32 = 0u32;
35698pub const MAPI_MH_DP_ML: u32 = 3u32;
35699pub const MAPI_MH_DP_MS: u32 = 2u32;
35700pub const MAPI_MH_DP_OTHER_AU: u32 = 6u32;
35701pub const MAPI_MH_DP_PDAU: u32 = 4u32;
35702pub const MAPI_MH_DP_PDS_PATRON: u32 = 5u32;
35703pub const MAPI_MH_DP_PRIVATE_UA: u32 = 1u32;
35704pub const MAPI_MH_DP_PUBLIC_UA: u32 = 0u32;
35705pub const MAPI_MODIFY: u32 = 1u32;
35706pub const MAPI_MOVE: u32 = 1u32;
35707pub const MAPI_MULTITHREAD_NOTIFICATIONS: u32 = 1u32;
35708pub const MAPI_NEW_MESSAGE: u32 = 2u32;
35709pub const MAPI_NEW_SESSION: u32 = 2u32;
35710pub const MAPI_NON_READ: u32 = 1u32;
35711pub const MAPI_NOREPLACE: u32 = 2u32;
35712pub const MAPI_NOTRECIP: u32 = 64u32;
35713pub const MAPI_NOTRESERVED: u32 = 8u32;
35714pub const MAPI_NOW: u32 = 16u32;
35715pub const MAPI_NO_CACHE: u32 = 512u32;
35716pub const MAPI_NO_COINIT: u32 = 8u32;
35717pub const MAPI_NO_HBAR: u32 = 1u32;
35718pub const MAPI_NO_IDS: u32 = 2u32;
35719pub const MAPI_NO_MAIL: u32 = 32768u32;
35720pub const MAPI_NO_STRINGS: u32 = 1u32;
35721pub const MAPI_NO_VBAR: u32 = 2u32;
35722pub const MAPI_NT_SERVICE: u32 = 65536u32;
35723pub const MAPI_OLE: u32 = 1u32;
35724pub const MAPI_OLE_STATIC: u32 = 2u32;
35725pub const MAPI_ONE_OFF_NO_RICH_INFO: u32 = 1u32;
35726pub const MAPI_ONE_OFF_UNICODE: u32 = 32768u32;
35727pub const MAPI_ORIG: u32 = 0u32;
35728pub const MAPI_P1: u32 = 268435456u32;
35729pub const MAPI_PASSWORD_UI: u32 = 131072u32;
35730pub const MAPI_PEEK: u32 = 128u32;
35731pub const MAPI_POST_MESSAGE: u32 = 1u32;
35732pub const MAPI_PRIMARY_STORE: u32 = 4u32;
35733pub const MAPI_PROFILE_PROVIDER: u32 = 38u32;
35734pub const MAPI_PROFSECT: u32 = 9u32;
35735pub const MAPI_PW_ADD_SERVICE_ONLY: u32 = 4u32;
35736pub const MAPI_PW_FIRST_PROFILE: u32 = 1u32;
35737pub const MAPI_PW_HIDE_SERVICES_LIST: u32 = 16u32;
35738pub const MAPI_PW_LAUNCHED_BY_CONFIG: u32 = 2u32;
35739pub const MAPI_PW_PROVIDER_UI_ONLY: u32 = 8u32;
35740pub const MAPI_RECEIPT_REQUESTED: u32 = 2u32;
35741pub const MAPI_RESERVED1: u32 = 65536u32;
35742pub const MAPI_RESOLVED: u32 = 2u32;
35743pub const MAPI_SECONDARY_STORE: u32 = 5u32;
35744pub const MAPI_SEND_NO_RICH_INFO: u32 = 65536u32;
35745pub const MAPI_SENT: u32 = 4u32;
35746pub const MAPI_SERVICE_UI_ALWAYS: u32 = 8192u32;
35747pub const MAPI_SESSION: u32 = 11u32;
35748pub const MAPI_SHORTTERM: u32 = 128u32;
35749pub const MAPI_SIMPLE_STORE_PERMANENT: u32 = 3u32;
35750pub const MAPI_SIMPLE_STORE_TEMPORARY: u32 = 2u32;
35751pub const MAPI_SPOOLER: u32 = 37u32;
35752pub const MAPI_STATUS: u32 = 10u32;
35753pub const MAPI_STORE: u32 = 1u32;
35754pub const MAPI_STORE_PROVIDER: u32 = 33u32;
35755pub const MAPI_SUBMITTED: u32 = 2147483648u32;
35756pub const MAPI_SUBSYSTEM: u32 = 39u32;
35757pub const MAPI_SUPPRESS_ATTACH: u32 = 2048u32;
35758pub const MAPI_THISSESSION: u32 = 32u32;
35759pub const MAPI_TIMEOUT_SHORT: u32 = 1048576u32;
35760pub const MAPI_TO: u32 = 1u32;
35761pub const MAPI_TOP_LEVEL: u32 = 1u32;
35762pub const MAPI_TRANSPORT_PROVIDER: u32 = 36u32;
35763pub const MAPI_UNICODE: u32 = 2147483648u32;
35764pub const MAPI_UNREAD: u32 = 1u32;
35765pub const MAPI_UNREAD_ONLY: u32 = 32u32;
35766pub const MAPI_UNRESOLVED: u32 = 0u32;
35767pub const MAPI_USER_ABORT: u32 = 1u32;
35768pub const MAPI_USE_DEFAULT: u32 = 64u32;
35769pub const MAPI_W_APPROX_COUNT: windows_core::HRESULT = windows_core::HRESULT(0x40482_u32 as _);
35770pub const MAPI_W_CANCEL_MESSAGE: windows_core::HRESULT = windows_core::HRESULT(0x40580_u32 as _);
35771pub const MAPI_W_ERRORS_RETURNED: windows_core::HRESULT = windows_core::HRESULT(0x40380_u32 as _);
35772pub const MAPI_W_NO_SERVICE: windows_core::HRESULT = windows_core::HRESULT(0x40203_u32 as _);
35773pub const MAPI_W_PARTIAL_COMPLETION: windows_core::HRESULT =
35774 windows_core::HRESULT(0x40680_u32 as _);
35775pub const MAPI_W_POSITION_CHANGED: windows_core::HRESULT = windows_core::HRESULT(0x40481_u32 as _);
35776pub const MAX_ADMD_NAME_SIZ: u32 = 17u32;
35777pub const MAX_CBMAX_BODY_LINE: u32 = 4294967295u32;
35778pub const MAX_CBMAX_HEADER_LINE: u32 = 4294967295u32;
35779pub const MAX_COUNTRY_NAME_SIZ: u32 = 4u32;
35780pub const MAX_MTA_NAME_SIZ: u32 = 33u32;
35781pub const MAX_PATH: u32 = 260u32;
35782pub const MAX_PRMD_NAME_SIZ: u32 = 17u32;
35783pub const MDB_FOLDER_IPM: u32 = 1u32;
35784pub const MDB_FOLDER_NORMAL: u32 = 4u32;
35785pub const MDB_FOLDER_RULES: u32 = 8u32;
35786pub const MDB_FOLDER_SEARCH: u32 = 2u32;
35787pub const MDB_IPM: u32 = 32u32;
35788pub const MDB_LIMIT_BELOW: u32 = 1u32;
35789pub const MDB_LIMIT_DISABLED: u32 = 16u32;
35790pub const MDB_LIMIT_ISSUE_WARNING: u32 = 2u32;
35791pub const MDB_LIMIT_NO_CHECK: u32 = 8u32;
35792pub const MDB_LIMIT_PROHIBIT_SEND: u32 = 4u32;
35793pub const MDB_NON_IPM: u32 = 16u32;
35794pub const MDB_NO_DIALOG: u32 = 1u32;
35795pub const MDB_NO_MAIL: u32 = 128u32;
35796pub const MDB_ONLINE: u32 = 256u32;
35797pub const MDB_OPEN_MSG_NO_BLOCK: u32 = 32u32;
35798pub const MDB_QUOTA_NOQUOTA: u32 = 4294967295u32;
35799pub const MDB_SAVE_MSG_UNLOCK: u32 = 64u32;
35800pub const MDB_TEMPORARY: u32 = 32u32;
35801pub const MDB_WRITE: u32 = 4u32;
35802pub const MEBF_FORMATBARSEP: u32 = 4u32;
35803pub const MEBF_INNERCLIENTEDGE: u32 = 2u32;
35804pub const MEBF_NOSCROLL: u32 = 8u32;
35805pub const MEBF_OUTERCLIENTEDGE: u32 = 1u32;
35806pub const MECD_ENCODEFILEURLSONLY: u32 = 8u32;
35807pub const MECD_ENCODEIMAGES: u32 = 4u32;
35808pub const MECD_ENCODEPLUGINS: u32 = 64u32;
35809pub const MECD_ENCODESOUNDS: u32 = 16u32;
35810pub const MECD_ENCODEVIDEO: u32 = 32u32;
35811pub const MECD_HTML: u32 = 1u32;
35812pub const MECD_PLAINTEXT: u32 = 2u32;
35813pub const MECMDID_APPLYDOCUMENT: u32 = 19u32;
35814pub const MECMDID_BACKGROUNDCOLOR: u32 = 18u32;
35815pub const MECMDID_BACKGROUNDIMAGE: u32 = 15u32;
35816pub const MECMDID_BACKGROUNDSOUND: u32 = 21u32;
35817pub const MECMDID_CHARSET: u32 = 13u32;
35818pub const MECMDID_DIRTY: u32 = 1u32;
35819pub const MECMDID_DOWNGRADEPLAINTEXT: u32 = 5u32;
35820pub const MECMDID_EDITHTML: u32 = 4u32;
35821pub const MECMDID_EDITMODE: u32 = 12u32;
35822pub const MECMDID_EMPTY: u32 = 2u32;
35823pub const MECMDID_FORMATFONT: u32 = 10u32;
35824pub const MECMDID_FORMATPARAGRAPH: u32 = 26u32;
35825pub const MECMDID_INSERTBGSOUND: u32 = 22u32;
35826pub const MECMDID_INSERTHTML: u32 = 17u32;
35827pub const MECMDID_INSERTTEXT: u32 = 16u32;
35828pub const MECMDID_INSERTTEXTFILE: u32 = 8u32;
35829pub const MECMDID_PREVIEWFORMAT: u32 = 11u32;
35830pub const MECMDID_ROT13: u32 = 7u32;
35831pub const MECMDID_SAVEASSTATIONERY: u32 = 14u32;
35832pub const MECMDID_SAVEATTACHMENTS: u32 = 20u32;
35833pub const MECMDID_SETSOURCETAB: u32 = 24u32;
35834pub const MECMDID_SETTEXT: u32 = 6u32;
35835pub const MECMDID_SHOWSOURCETABS: u32 = 23u32;
35836pub const MECMDID_STYLE: u32 = 3u32;
35837pub const MECMDID_TABLINKS: u32 = 25u32;
35838pub const MECMDID_VIEWSOURCE: u32 = 9u32;
35839pub const MECMD_VS_HTML: u32 = 1u32;
35840pub const MECMD_VS_MESSAGE: u32 = 2u32;
35841pub const MEHEADER_FORCE_ENGLISH: u32 = 4u32;
35842pub const MEHEADER_MAIL: u32 = 2u32;
35843pub const MEHEADER_NEWS: u32 = 1u32;
35844pub const MEHEADER_NONE: u32 = 0u32;
35845pub const MEHOSTCMDID_ADD_TO_ADDRESSBOOK: u32 = 10u32;
35846pub const MEHOSTCMDID_ADD_TO_FAVORITES: u32 = 11u32;
35847pub const MEHOSTCMDID_BORDERFLAGS: u32 = 14u32;
35848pub const MEHOSTCMDID_COMPOSE_FONT: u32 = 9u32;
35849pub const MEHOSTCMDID_FLAGS: u32 = 6u32;
35850pub const MEHOSTCMDID_FONTCACHE: u32 = 13u32;
35851pub const MEHOSTCMDID_HEADER_TYPE: u32 = 4u32;
35852pub const MEHOSTCMDID_ONPARSECOMPLETE: u32 = 5u32;
35853pub const MEHOSTCMDID_QUOTE_CHAR: u32 = 7u32;
35854pub const MEHOSTCMDID_REPLY_TICK_COLOR: u32 = 8u32;
35855pub const MEHOSTCMDID_SAVEATTACH_PATH: u32 = 17u32;
35856pub const MEHOSTCMDID_SECURITY_ZONE: u32 = 15u32;
35857pub const MEHOSTCMDID_SIGNATURE: u32 = 3u32;
35858pub const MEHOSTCMDID_SIGNATURE_ENABLED: u32 = 1u32;
35859pub const MEHOSTCMDID_SIGNATURE_OPTIONS: u32 = 2u32;
35860pub const MEHOSTCMDID_SLIDESHOW_DELAY: u32 = 12u32;
35861pub const MEHOSTCMDID_SOURCEEDIT_FLAGS: u32 = 18u32;
35862pub const MEHOSTCMDID_SPELL_LANGUAGE: u32 = 19u32;
35863pub const MEHOSTCMDID_SPELL_OPTIONS: u32 = 16u32;
35864pub const MEO_FLAGS_AUTOINLINE: u32 = 4u32;
35865pub const MEO_FLAGS_AUTOTEXT: u32 = 16u32;
35866pub const MEO_FLAGS_BLOCKQUOTE: u32 = 32u32;
35867pub const MEO_FLAGS_DONTSPELLCHECKQUOTED: u32 = 128u32;
35868pub const MEO_FLAGS_HTML: u32 = 2u32;
35869pub const MEO_FLAGS_INCLUDEMSG: u32 = 1u32;
35870pub const MEO_FLAGS_SENDEXTERNALIMGSRC: u32 = 256u32;
35871pub const MEO_FLAGS_SENDIMAGES: u32 = 64u32;
35872pub const MEO_FLAGS_SLIDESHOW: u32 = 8u32;
35873pub const MESIGOPT_BOTTOM: u32 = 8u32;
35874pub const MESIGOPT_HTML: u32 = 16u32;
35875pub const MESIGOPT_PLAIN: u32 = 1u32;
35876pub const MESIGOPT_PREFIX: u32 = 4u32;
35877pub const MESIGOPT_TOP: u32 = 2u32;
35878pub const MESIG_AUTO: u32 = 1u32;
35879pub const MESIG_MANUAL: u32 = 2u32;
35880pub const MESPELLOPT_ALWAYSSUGGEST: u32 = 32u32;
35881pub const MESPELLOPT_CHECKONSEND: u32 = 64u32;
35882pub const MESPELLOPT_CHECKONTYPE: u32 = 128u32;
35883pub const MESPELLOPT_IGNOREDBCS: u32 = 4u32;
35884pub const MESPELLOPT_IGNORENUMBER: u32 = 1u32;
35885pub const MESPELLOPT_IGNOREPROTECT: u32 = 8u32;
35886pub const MESPELLOPT_IGNOREUPPER: u32 = 2u32;
35887pub const MESPELLOPT_IGNOREURL: u32 = 16u32;
35888pub const MESRCFLAGS_COLOR: u32 = 1u32;
35889pub const MESSAGE_BEST_BODY: u32 = 16u32;
35890pub const MESSAGE_DIALOG: u32 = 2u32;
35891pub const MESSAGE_MOVE: u32 = 1u32;
35892pub const MESSAGE_SEND_ENTRYID: u32 = 32u32;
35893pub const MESTYLE_FORMATBAR: u32 = 2u32;
35894pub const MESTYLE_MINIHEADER: u32 = 3u32;
35895pub const MESTYLE_NOHEADER: u32 = 0u32;
35896pub const MESTYLE_PREVIEW: u32 = 1u32;
35897pub const MEST_EDIT: u32 = 0u32;
35898pub const MEST_NEXT: u32 = 3u32;
35899pub const MEST_PREVIEW: u32 = 2u32;
35900pub const MEST_PREVIOUS: u32 = 4u32;
35901pub const MEST_SOURCE: u32 = 1u32;
35902#[repr(transparent)]
35903#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35904pub struct METHODS(pub i32);
35905pub const MIMEOLE_COMPAT_MLANG2: u32 = 2u32;
35906pub const MIMEOLE_COMPAT_OE5: u32 = 1u32;
35907#[repr(C)]
35908#[derive(Clone, Copy, Debug, PartialEq)]
35909pub struct MIMEPARAMINFO {
35910 pub pszName: windows_core::PSTR,
35911 pub pszData: windows_core::PSTR,
35912}
35913impl Default for MIMEPARAMINFO {
35914 fn default() -> Self {
35915 unsafe { core::mem::zeroed() }
35916 }
35917}
35918#[repr(transparent)]
35919#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35920pub struct MIMEPROPFLAGS(pub i32);
35921#[repr(transparent)]
35922#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35923pub struct MIMEPROPID(pub i32);
35924#[repr(C)]
35925#[derive(Clone, Copy, Debug, PartialEq)]
35926pub struct MIMEPROPINFO {
35927 pub dwMask: u32,
35928 pub hCharset: *mut HCHARSET__,
35929 pub ietEncoding: ENCODINGTYPE,
35930 pub dwRowNumber: u32,
35931 pub dwFlags: u32,
35932 pub dwPropId: u32,
35933 pub cValues: u32,
35934 pub vtDefault: u16,
35935 pub vtCurrent: u16,
35936}
35937impl Default for MIMEPROPINFO {
35938 fn default() -> Self {
35939 unsafe { core::mem::zeroed() }
35940 }
35941}
35942#[repr(transparent)]
35943#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35944pub struct MIMESAVETYPE(pub i32);
35945pub const MIN_CBMAX_BODY_LINE: u32 = 30u32;
35946pub const MIN_CBMAX_HEADER_LINE: u32 = 76u32;
35947pub const MIN_EMS_AB_CONSTRUCTED_PROP_ID: u32 = 65528u32;
35948pub const MNID_ID: u32 = 0u32;
35949pub const MNID_STRING: u32 = 1u32;
35950pub const MODRECIP_ADD: u32 = 2u32;
35951pub const MODRECIP_MODIFY: u32 = 4u32;
35952pub const MODRECIP_REMOVE: u32 = 8u32;
35953pub const MPF_ADDRESS: MIMEPROPFLAGS = MIMEPROPFLAGS(4i32);
35954pub const MPF_HASPARAMS: MIMEPROPFLAGS = MIMEPROPFLAGS(8i32);
35955pub const MPF_INETCSET: MIMEPROPFLAGS = MIMEPROPFLAGS(1i32);
35956pub const MPF_MIME: MIMEPROPFLAGS = MIMEPROPFLAGS(16i32);
35957pub const MPF_READONLY: MIMEPROPFLAGS = MIMEPROPFLAGS(32i32);
35958pub const MPF_RFC1522: MIMEPROPFLAGS = MIMEPROPFLAGS(2i32);
35959pub const MSCAP_RES_ANNOTATION: u32 = 1u32;
35960pub const MSCAP_SECURE_FOLDER_HOMEPAGES: u32 = 1u32;
35961#[repr(transparent)]
35962#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35963pub struct MSCAP_SELECTOR(pub i32);
35964pub const MSCAP_SEL_FOLDER: MSCAP_SELECTOR = MSCAP_SELECTOR(2i32);
35965pub const MSCAP_SEL_RESERVED1: MSCAP_SELECTOR = MSCAP_SELECTOR(0i32);
35966pub const MSCAP_SEL_RESERVED2: MSCAP_SELECTOR = MSCAP_SELECTOR(1i32);
35967pub const MSCAP_SEL_RESERVED3: MSCAP_SELECTOR = MSCAP_SELECTOR(3i32);
35968pub const MSCAP_SEL_RESTRICTION: MSCAP_SELECTOR = MSCAP_SELECTOR(4i32);
35969pub type MSGCALLRELEASE = Option<
35970 unsafe extern "system" fn(ulcallerdata: u32, lpmessage: windows_core::Ref<'_, IMessage>),
35971>;
35972pub const MSGFLAG_ASSOCIATED: u32 = 64u32;
35973pub const MSGFLAG_FROMME: u32 = 32u32;
35974pub const MSGFLAG_HASATTACH: u32 = 16u32;
35975pub const MSGFLAG_NRN_PENDING: u32 = 512u32;
35976pub const MSGFLAG_READ: u32 = 1u32;
35977pub const MSGFLAG_RESEND: u32 = 128u32;
35978pub const MSGFLAG_RN_PENDING: u32 = 256u32;
35979pub const MSGFLAG_SUBMIT: u32 = 4u32;
35980pub const MSGFLAG_UNMODIFIED: u32 = 2u32;
35981pub const MSGFLAG_UNSENT: u32 = 8u32;
35982pub type MSGSERVICEENTRY = Option<
35983 unsafe extern "system" fn(
35984 hinstance: windows::Win32::Foundation::HINSTANCE,
35985 lpmalloc: windows_core::Ref<'_, windows::Win32::System::Com::IMalloc>,
35986 lpmapisup: windows_core::Ref<'_, IMAPISupport>,
35987 uluiparam: usize,
35988 ulflags: u32,
35989 ulcontext: u32,
35990 cvalues: u32,
35991 lpprops: *mut SPropValue,
35992 lpprovideradmin: windows_core::Ref<'_, IProviderAdmin>,
35993 lppmapierror: *mut *mut MAPIERROR,
35994 ) -> windows_core::HRESULT,
35995>;
35996pub const MSGSTATUS_DELMARKED: u32 = 8u32;
35997pub const MSGSTATUS_HIDDEN: u32 = 4u32;
35998pub const MSGSTATUS_HIGHLIGHTED: u32 = 1u32;
35999pub const MSGSTATUS_IN_CONFLICT: u32 = 2048u32;
36000pub const MSGSTATUS_MDNSENT: u32 = 16384u32;
36001pub const MSGSTATUS_REMOTE_DELETE: u32 = 8192u32;
36002pub const MSGSTATUS_REMOTE_DOWNLOAD: u32 = 4096u32;
36003pub const MSGSTATUS_TAGGED: u32 = 2u32;
36004pub const MSG_LOCKED: u32 = 1u32;
36005pub const MSG_SERVICE_CONFIGURE: u32 = 3u32;
36006pub const MSG_SERVICE_CREATE: u32 = 2u32;
36007pub const MSG_SERVICE_DELETE: u32 = 4u32;
36008pub const MSG_SERVICE_INSTALL: u32 = 1u32;
36009pub const MSG_SERVICE_PROVIDER_CREATE: u32 = 6u32;
36010pub const MSG_SERVICE_PROVIDER_DELETE: u32 = 7u32;
36011pub const MSG_SERVICE_UI_READ_ONLY: u32 = 8u32;
36012pub const MSG_SERVICE_UNINSTALL: u32 = 5u32;
36013pub const MSG_UNLOCKED: u32 = 0u32;
36014pub type MSPROVIDERINIT = Option<
36015 unsafe extern "system" fn(
36016 hinstance: windows::Win32::Foundation::HINSTANCE,
36017 lpmalloc: windows_core::Ref<'_, windows::Win32::System::Com::IMalloc>,
36018 lpallocatebuffer: LPALLOCATEBUFFER,
36019 lpallocatemore: LPALLOCATEMORE,
36020 lpfreebuffer: LPFREEBUFFER,
36021 ulflags: u32,
36022 ulmapiver: u32,
36023 lpulproviderver: *mut u32,
36024 lppmsprovider: windows_core::OutRef<'_, IMSProvider>,
36025 ) -> windows_core::HRESULT,
36026>;
36027pub const MST_BLOB_FLAG: u32 = 4u32;
36028pub const MST_CHILD_ENCRYPT: u32 = 512u32;
36029pub const MST_CHILD_MASK: u32 = 3840u32;
36030pub const MST_CHILD_SIGN: u32 = 256u32;
36031pub const MST_CLASS_MASK: u32 = 4278190080u32;
36032pub const MST_CLASS_PGP: u32 = 16777216u32;
36033pub const MST_CLASS_SMIME_V1: u32 = 0u32;
36034pub const MST_DESCENDENT_MASK: u32 = 65280u32;
36035pub const MST_ENCRYPT_MASK: u32 = 8706u32;
36036pub const MST_NONE: u32 = 0u32;
36037pub const MST_RECEIPT_REQUEST: u32 = 65536u32;
36038pub const MST_SIGN_MASK: u32 = 4353u32;
36039pub const MST_SUBMSG_ENCRYPT: u32 = 8192u32;
36040pub const MST_SUBMSG_MASK: u32 = 61440u32;
36041pub const MST_SUBMSG_SIGN: u32 = 4096u32;
36042pub const MST_THIS_BLOBSIGN: u32 = 5u32;
36043pub const MST_THIS_ENCRYPT: u32 = 2u32;
36044pub const MST_THIS_MASK: u32 = 255u32;
36045pub const MST_THIS_SIGN: u32 = 1u32;
36046pub const MST_TYPE_MASK: u32 = 65535u32;
36047pub const MSV_BADSIGNATURE: u32 = 1u32;
36048pub const MSV_CANTDECRYPT: u32 = 4096u32;
36049pub const MSV_ENCRYPT_MASK: u32 = 1044480u32;
36050pub const MSV_ENC_FOR_EXPIREDCERT: u32 = 8192u32;
36051pub const MSV_EXPIRED_SIGNINGCERT: u32 = 256u32;
36052pub const MSV_INVALID: u32 = 16777216u32;
36053pub const MSV_MALFORMEDSIG: u32 = 128u32;
36054pub const MSV_MSG_MASK: u32 = 251658240u32;
36055pub const MSV_OK: u32 = 0u32;
36056pub const MSV_SIGNATURE_MASK: u32 = 255u32;
36057pub const MSV_SIGNING_MASK: u32 = 3840u32;
36058pub const MSV_UNKHASH: u32 = 4u32;
36059pub const MSV_UNVERIFIABLE: u32 = 2u32;
36060pub const MTA_PAD: u32 = 3u32;
36061pub const MTA_PAD_FOR_ACTIONS: u32 = 2u32;
36062#[repr(C)]
36063#[derive(Clone, Copy, Debug, PartialEq)]
36064pub struct MTSID {
36065 pub cb: u32,
36066 pub ab: [u8; 1],
36067}
36068impl Default for MTSID {
36069 fn default() -> Self {
36070 unsafe { core::mem::zeroed() }
36071 }
36072}
36073pub const MUID_PROFILE_INSTANCE: windows_core::GUID =
36074 windows_core::GUID::from_u128(0x00020385_0000_0000_c000_000000000046);
36075pub const MV_FLAG: u32 = 4096u32;
36076pub const MV_INSTANCE: u32 = 8192u32;
36077#[repr(C)]
36078#[derive(Clone, Copy, Debug, PartialEq)]
36079pub struct MapiFileDesc {
36080 pub ulReserved: u32,
36081 pub flFlags: u32,
36082 pub nPosition: u32,
36083 pub lpszPathName: windows_core::PSTR,
36084 pub lpszFileName: windows_core::PSTR,
36085 pub lpFileType: *mut core::ffi::c_void,
36086}
36087impl Default for MapiFileDesc {
36088 fn default() -> Self {
36089 unsafe { core::mem::zeroed() }
36090 }
36091}
36092#[repr(C)]
36093#[derive(Clone, Copy, Debug, PartialEq)]
36094pub struct MapiFileTagExt {
36095 pub ulReserved: u32,
36096 pub cbTag: u32,
36097 pub lpTag: *mut u8,
36098 pub cbEncoding: u32,
36099 pub lpEncoding: *mut u8,
36100}
36101impl Default for MapiFileTagExt {
36102 fn default() -> Self {
36103 unsafe { core::mem::zeroed() }
36104 }
36105}
36106#[repr(C)]
36107#[derive(Clone, Copy, Debug, PartialEq)]
36108pub struct MapiMessage {
36109 pub ulReserved: u32,
36110 pub lpszSubject: windows_core::PSTR,
36111 pub lpszNoteText: windows_core::PSTR,
36112 pub lpszMessageType: windows_core::PSTR,
36113 pub lpszDateReceived: windows_core::PSTR,
36114 pub lpszConversationID: windows_core::PSTR,
36115 pub flFlags: u32,
36116 pub lpOriginator: *mut MapiRecipDesc,
36117 pub nRecipCount: u32,
36118 pub lpRecips: *mut MapiRecipDesc,
36119 pub nFileCount: u32,
36120 pub lpFiles: *mut MapiFileDesc,
36121}
36122impl Default for MapiMessage {
36123 fn default() -> Self {
36124 unsafe { core::mem::zeroed() }
36125 }
36126}
36127#[repr(C)]
36128#[derive(Clone, Copy, Debug, PartialEq)]
36129pub struct MapiRecipDesc {
36130 pub ulReserved: u32,
36131 pub ulRecipClass: u32,
36132 pub lpszName: windows_core::PSTR,
36133 pub lpszAddress: windows_core::PSTR,
36134 pub ulEIDSize: u32,
36135 pub lpEntryID: *mut core::ffi::c_void,
36136}
36137impl Default for MapiRecipDesc {
36138 fn default() -> Self {
36139 unsafe { core::mem::zeroed() }
36140 }
36141}
36142pub const NEEDS_PREPROCESSING: u32 = 1u32;
36143pub const NEEDS_SPOOLER: u32 = 2u32;
36144#[repr(C)]
36145#[derive(Clone, Copy, Debug, PartialEq)]
36146pub struct NEWMAIL_NOTIFICATION {
36147 pub cbEntryID: u32,
36148 pub lpEntryID: *mut ENTRYID,
36149 pub cbParentID: u32,
36150 pub lpParentID: *mut ENTRYID,
36151 pub ulFlags: u32,
36152 pub lpszMessageClass: *mut i8,
36153 pub ulMessageFlags: u32,
36154}
36155impl Default for NEWMAIL_NOTIFICATION {
36156 fn default() -> Self {
36157 unsafe { core::mem::zeroed() }
36158 }
36159}
36160pub const NOFLAGS: u32 = 0u32;
36161pub const NON_EMS_XP_SAVE: u32 = 4096u32;
36162pub const NON_STANDARD: u32 = 65536u32;
36163pub const NORM_IGNORECASE: u32 = 1u32;
36164pub const NORM_IGNOREKANATYPE: u32 = 65536u32;
36165pub const NORM_IGNORENONSPACE: u32 = 2u32;
36166pub const NORM_IGNORESYMBOLS: u32 = 4u32;
36167pub const NORM_IGNOREWIDTH: u32 = 131072u32;
36168#[repr(C)]
36169#[derive(Clone, Copy)]
36170pub struct NOTIFICATION {
36171 pub ulEventType: u32,
36172 pub ulAlignPad: u32,
36173 pub info: NOTIFICATION_0,
36174}
36175impl Default for NOTIFICATION {
36176 fn default() -> Self {
36177 unsafe { core::mem::zeroed() }
36178 }
36179}
36180#[repr(C)]
36181#[derive(Clone, Copy)]
36182pub union NOTIFICATION_0 {
36183 pub err: ERROR_NOTIFICATION,
36184 pub newmail: NEWMAIL_NOTIFICATION,
36185 pub obj: OBJECT_NOTIFICATION,
36186 pub tab: TABLE_NOTIFICATION,
36187 pub ext: EXTENDED_NOTIFICATION,
36188 pub statobj: STATUS_OBJECT_NOTIFICATION,
36189}
36190impl Default for NOTIFICATION_0 {
36191 fn default() -> Self {
36192 unsafe { core::mem::zeroed() }
36193 }
36194}
36195#[repr(C)]
36196#[derive(Clone, Copy, Debug, PartialEq)]
36197pub struct NOTIFKEY {
36198 pub cb: u32,
36199 pub ab: [u8; 1],
36200}
36201impl Default for NOTIFKEY {
36202 fn default() -> Self {
36203 unsafe { core::mem::zeroed() }
36204 }
36205}
36206pub const NOTIFY_ABORT_DEFERRED: u32 = 1073741824u32;
36207pub const NOTIFY_ACCT_CHANGED: u32 = 1u32;
36208pub const NOTIFY_ACCT_CREATED: u32 = 2u32;
36209pub const NOTIFY_ACCT_DELETED: u32 = 3u32;
36210pub const NOTIFY_ACCT_ORDER_CHANGED: u32 = 4u32;
36211pub const NOTIFY_ACCT_PREDELETED: u32 = 5u32;
36212pub const NOTIFY_BEGIN_INBOUND: u32 = 1u32;
36213pub const NOTIFY_BEGIN_INBOUND_FLUSH: u32 = 4u32;
36214pub const NOTIFY_BEGIN_OUTBOUND: u32 = 2u32;
36215pub const NOTIFY_BEGIN_OUTBOUND_FLUSH: u32 = 8u32;
36216pub const NOTIFY_CANCELED: u32 = 2147483648u32;
36217pub const NOTIFY_CANCEL_MESSAGE: u32 = 2147483648u32;
36218pub const NOTIFY_CONFIG_CHANGE: u32 = 16384u32;
36219pub const NOTIFY_CRITICAL_ERROR: u32 = 268435456u32;
36220pub const NOTIFY_CRITSEC: u32 = 4096u32;
36221pub const NOTIFY_END_INBOUND: u32 = 65536u32;
36222pub const NOTIFY_END_INBOUND_FLUSH: u32 = 262144u32;
36223pub const NOTIFY_END_OUTBOUND: u32 = 131072u32;
36224pub const NOTIFY_END_OUTBOUND_FLUSH: u32 = 524288u32;
36225pub const NOTIFY_NEWMAIL: u32 = 1u32;
36226pub const NOTIFY_NEWMAIL_RECEIVED: u32 = 536870912u32;
36227pub const NOTIFY_NONCRIT: u32 = 8192u32;
36228pub const NOTIFY_READYTOSEND: u32 = 2u32;
36229pub const NOTIFY_SENTDEFERRED: u32 = 4u32;
36230pub const NOTIFY_SYNC: u32 = 1073741824u32;
36231pub const NO_ATTACHMENT: u32 = 0u32;
36232pub const NO_OST_DEFAULT: u32 = 0u32;
36233pub const NO_OST_FLAG_ALLOWED: u32 = 0u32;
36234pub const NO_OST_FLAG_CACHE_ONLY: u32 = 1u32;
36235pub const NO_OST_FLAG_NOT_ALLOWED: u32 = 2u32;
36236pub const NO_OST_FLAG_NO_CACHE: u32 = 3u32;
36237pub const NULL_RESTRICTION: u32 = 255u32;
36238pub const NUM_AG_TYPES: u32 = 3u32;
36239#[repr(C)]
36240#[derive(Clone, Copy, Debug, PartialEq)]
36241pub struct OBJECT_NOTIFICATION {
36242 pub cbEntryID: u32,
36243 pub lpEntryID: *mut ENTRYID,
36244 pub ulObjType: u32,
36245 pub cbParentID: u32,
36246 pub lpParentID: *mut ENTRYID,
36247 pub cbOldID: u32,
36248 pub lpOldID: *mut ENTRYID,
36249 pub cbOldParentID: u32,
36250 pub lpOldParentID: *mut ENTRYID,
36251 pub lpPropTagArray: *mut SPropTagArray,
36252}
36253impl Default for OBJECT_NOTIFICATION {
36254 fn default() -> Self {
36255 unsafe { core::mem::zeroed() }
36256 }
36257}
36258pub const OF_AVAILABLE_OFFLINE: u32 = 1u32;
36259pub const OF_FORCE: u32 = 2147483648u32;
36260pub const OID: CERTNAMETYPE = CERTNAMETYPE(1i32);
36261pub const OID_ENCODING: u32 = 11u32;
36262pub const OID_TAG: u32 = 10u32;
36263pub const OLK_ACCOUNT_NO_FLAGS: u32 = 0u32;
36264pub const OPENSTORE_ALTERNATE_SERVER: u32 = 256u32;
36265pub const OPENSTORE_CACHE_EXCHANGE: u32 = 32768u32;
36266pub const OPENSTORE_CALLBACK_LOGON: u32 = 4096u32;
36267pub const OPENSTORE_CLI_WITH_NAMEDPROP_FIX: u32 = 65536u32;
36268pub const OPENSTORE_CLI_WITH_REPLID_GUID_MAPPING_FIX: u32 = 262144u32;
36269pub const OPENSTORE_ENABLE_LAZY_LOGGING: u32 = 131072u32;
36270pub const OPENSTORE_FAIL_IF_NO_MAILBOX: u32 = 16384u32;
36271pub const OPENSTORE_HOME_LOGON: u32 = 4u32;
36272pub const OPENSTORE_IGNORE_HOME_MDB: u32 = 512u32;
36273pub const OPENSTORE_INTERNET_ANONYMOUS: u32 = 128u32;
36274pub const OPENSTORE_LOCAL: u32 = 8192u32;
36275pub const OPENSTORE_NO_LOCALIZATION: u32 = 524288u32;
36276pub const OPENSTORE_NO_MAIL: u32 = 1024u32;
36277pub const OPENSTORE_OVERRIDE_HOME_MDB: u32 = 16u32;
36278pub const OPENSTORE_OVERRIDE_LAST_MODIFIER: u32 = 2048u32;
36279pub const OPENSTORE_PUBLIC: u32 = 2u32;
36280pub const OPENSTORE_REMOTE_TRANSPORT: u32 = 64u32;
36281pub const OPENSTORE_RESTORE_DATABASE: u32 = 1048576u32;
36282pub const OPENSTORE_TAKE_OWNERSHIP: u32 = 8u32;
36283pub const OPENSTORE_TRANSPORT: u32 = 32u32;
36284pub const OPENSTORE_USE_ADMIN_PRIVILEGE: u32 = 1u32;
36285pub const OPENSTORE_XFOREST_MOVE: u32 = 2097152u32;
36286pub const OPENSTREAMONFILE: windows_core::PCSTR = windows_core::s!("OpenStreamOnFile");
36287pub const OPEN_ALWAYS: u32 = 4u32;
36288pub const OPEN_EXISTING: u32 = 3u32;
36289pub const OPEN_IF_EXISTS: u32 = 1u32;
36290pub type OPTIONCALLBACK = Option<
36291 unsafe extern "system" fn(
36292 hinst: windows::Win32::Foundation::HINSTANCE,
36293 lpmalloc: windows_core::Ref<'_, windows::Win32::System::Com::IMalloc>,
36294 ulflags: u32,
36295 cboptiondata: u32,
36296 lpboptiondata: *mut u8,
36297 lpmapisup: windows_core::Ref<'_, IMAPISupport>,
36298 lpdatasource: windows_core::Ref<'_, IMAPIProp>,
36299 lppwrappedsource: windows_core::OutRef<'_, IMAPIProp>,
36300 lppmapierror: *mut *mut MAPIERROR,
36301 ) -> i32,
36302>;
36303#[repr(C)]
36304#[derive(Clone, Copy, Debug, PartialEq)]
36305pub struct OPTIONDATA {
36306 pub ulFlags: u32,
36307 pub lpRecipGUID: *mut windows_core::GUID,
36308 pub lpszAdrType: *mut i8,
36309 pub lpszDLLName: *mut i8,
36310 pub ulOrdinal: u32,
36311 pub cbOptionsData: u32,
36312 pub lpbOptionsData: *mut u8,
36313 pub cOptionsProps: u32,
36314 pub lpOptionsProps: *mut SPropValue,
36315}
36316impl Default for OPTIONDATA {
36317 fn default() -> Self {
36318 unsafe { core::mem::zeroed() }
36319 }
36320}
36321pub const OPTION_TYPE_MESSAGE: u32 = 2u32;
36322pub const OPTION_TYPE_RECIPIENT: u32 = 1u32;
36323pub const OP_BOUNCE: ACTTYPE = ACTTYPE(6i32);
36324pub const OP_COPY: ACTTYPE = ACTTYPE(2i32);
36325pub const OP_DEFER_ACTION: ACTTYPE = ACTTYPE(5i32);
36326pub const OP_DELEGATE: ACTTYPE = ACTTYPE(8i32);
36327pub const OP_DELETE: ACTTYPE = ACTTYPE(10i32);
36328pub const OP_FORWARD: ACTTYPE = ACTTYPE(7i32);
36329pub const OP_MARK_AS_READ: ACTTYPE = ACTTYPE(11i32);
36330pub const OP_MOVE: ACTTYPE = ACTTYPE(1i32);
36331pub const OP_OOF_REPLY: ACTTYPE = ACTTYPE(4i32);
36332pub const OP_REPLY: ACTTYPE = ACTTYPE(3i32);
36333pub const OP_TAG: ACTTYPE = ACTTYPE(9i32);
36334pub const OSTF_BEST_ENCRYPTION: u32 = 536870912u32;
36335pub const OSTF_COMPRESSABLE_ENCRYPTION: u32 = 1073741824u32;
36336pub const OSTF_NO_ENCRYPTION: u32 = 2147483648u32;
36337pub const PDF_ENCODED: u32 = 1u32;
36338pub const PDF_NAMEINDATA: u32 = 2u32;
36339pub const PDF_NOCOMMENTS: u32 = 8u32;
36340pub const PDF_SAVENOENCODE: u32 = 16u32;
36341pub const PDF_VECTOR: u32 = 32u32;
36342pub const PDK1_SPI_VERSION: i32 = 65536i32;
36343pub const PDK2_SPI_VERSION: i32 = 65544i32;
36344pub const PDK3_SPI_VERSION: i32 = 65552i32;
36345pub type PFNIDLE =
36346 Option<unsafe extern "system" fn(param0: *mut core::ffi::c_void) -> windows_core::BOOL>;
36347pub const PID_ATT_ACCOUNT: MIMEPROPID = MIMEPROPID(63i32);
36348pub const PID_ATT_AUTOINLINED: MIMEPROPID = MIMEPROPID(72i32);
36349pub const PID_ATT_COMBINED: MIMEPROPID = MIMEPROPID(71i32);
36350pub const PID_ATT_FILENAME: MIMEPROPID = MIMEPROPID(45i32);
36351pub const PID_ATT_FORWARDTO: MIMEPROPID = MIMEPROPID(67i32);
36352pub const PID_ATT_GENFNAME: MIMEPROPID = MIMEPROPID(46i32);
36353pub const PID_ATT_GHOSTED: MIMEPROPID = MIMEPROPID(69i32);
36354pub const PID_ATT_ILLEGAL: MIMEPROPID = MIMEPROPID(50i32);
36355pub const PID_ATT_NORMSUBJ: MIMEPROPID = MIMEPROPID(49i32);
36356pub const PID_ATT_PRIORITY: MIMEPROPID = MIMEPROPID(54i32);
36357pub const PID_ATT_PRITYPE: MIMEPROPID = MIMEPROPID(47i32);
36358pub const PID_ATT_RECVTIME: MIMEPROPID = MIMEPROPID(53i32);
36359pub const PID_ATT_RENDERED: MIMEPROPID = MIMEPROPID(51i32);
36360pub const PID_ATT_SENTTIME: MIMEPROPID = MIMEPROPID(52i32);
36361pub const PID_ATT_SERVER: MIMEPROPID = MIMEPROPID(62i32);
36362pub const PID_ATT_STOREFOLDERID: MIMEPROPID = MIMEPROPID(68i32);
36363pub const PID_ATT_STOREMSGID: MIMEPROPID = MIMEPROPID(65i32);
36364pub const PID_ATT_SUBTYPE: MIMEPROPID = MIMEPROPID(48i32);
36365pub const PID_ATT_UIDL: MIMEPROPID = MIMEPROPID(64i32);
36366pub const PID_ATT_UNCACHEDSIZE: MIMEPROPID = MIMEPROPID(70i32);
36367pub const PID_ATT_USERNAME: MIMEPROPID = MIMEPROPID(66i32);
36368pub const PID_BASE: u32 = 2u32;
36369pub const PID_HDR_APPARTO: MIMEPROPID = MIMEPROPID(11i32);
36370pub const PID_HDR_APPROVED: MIMEPROPID = MIMEPROPID(34i32);
36371pub const PID_HDR_ARTICLEID: MIMEPROPID = MIMEPROPID(60i32);
36372pub const PID_HDR_BCC: MIMEPROPID = MIMEPROPID(16i32);
36373pub const PID_HDR_CC: MIMEPROPID = MIMEPROPID(29i32);
36374pub const PID_HDR_CNTBASE: MIMEPROPID = MIMEPROPID(23i32);
36375pub const PID_HDR_CNTDESC: MIMEPROPID = MIMEPROPID(21i32);
36376pub const PID_HDR_CNTDISP: MIMEPROPID = MIMEPROPID(22i32);
36377pub const PID_HDR_CNTID: MIMEPROPID = MIMEPROPID(20i32);
36378pub const PID_HDR_CNTLOC: MIMEPROPID = MIMEPROPID(24i32);
36379pub const PID_HDR_CNTTYPE: MIMEPROPID = MIMEPROPID(18i32);
36380pub const PID_HDR_CNTXFER: MIMEPROPID = MIMEPROPID(19i32);
36381pub const PID_HDR_COMMENT: MIMEPROPID = MIMEPROPID(55i32);
36382pub const PID_HDR_CONTROL: MIMEPROPID = MIMEPROPID(30i32);
36383pub const PID_HDR_DATE: MIMEPROPID = MIMEPROPID(12i32);
36384pub const PID_HDR_DISTRIB: MIMEPROPID = MIMEPROPID(31i32);
36385pub const PID_HDR_ENCODING: MIMEPROPID = MIMEPROPID(56i32);
36386pub const PID_HDR_ENCRYPTED: MIMEPROPID = MIMEPROPID(57i32);
36387pub const PID_HDR_EXPIRES: MIMEPROPID = MIMEPROPID(28i32);
36388pub const PID_HDR_FOLLOWUPTO: MIMEPROPID = MIMEPROPID(27i32);
36389pub const PID_HDR_FROM: MIMEPROPID = MIMEPROPID(6i32);
36390pub const PID_HDR_KEYWORDS: MIMEPROPID = MIMEPROPID(32i32);
36391pub const PID_HDR_LINES: MIMEPROPID = MIMEPROPID(35i32);
36392pub const PID_HDR_MESSAGEID: MIMEPROPID = MIMEPROPID(7i32);
36393pub const PID_HDR_MIMEVER: MIMEPROPID = MIMEPROPID(17i32);
36394pub const PID_HDR_NEWSGROUP: MIMEPROPID = MIMEPROPID(2i32);
36395pub const PID_HDR_NEWSGROUPS: MIMEPROPID = MIMEPROPID(3i32);
36396pub const PID_HDR_OFFSETS: MIMEPROPID = MIMEPROPID(58i32);
36397pub const PID_HDR_ORG: MIMEPROPID = MIMEPROPID(37i32);
36398pub const PID_HDR_PATH: MIMEPROPID = MIMEPROPID(26i32);
36399pub const PID_HDR_RECEIVED: MIMEPROPID = MIMEPROPID(13i32);
36400pub const PID_HDR_REFS: MIMEPROPID = MIMEPROPID(4i32);
36401pub const PID_HDR_REPLYTO: MIMEPROPID = MIMEPROPID(14i32);
36402pub const PID_HDR_RETRCPTTO: MIMEPROPID = MIMEPROPID(10i32);
36403pub const PID_HDR_RETURNPATH: MIMEPROPID = MIMEPROPID(8i32);
36404pub const PID_HDR_RR: MIMEPROPID = MIMEPROPID(9i32);
36405pub const PID_HDR_SENDER: MIMEPROPID = MIMEPROPID(61i32);
36406pub const PID_HDR_SUBJECT: MIMEPROPID = MIMEPROPID(5i32);
36407pub const PID_HDR_SUMMARY: MIMEPROPID = MIMEPROPID(33i32);
36408pub const PID_HDR_TO: MIMEPROPID = MIMEPROPID(25i32);
36409pub const PID_HDR_XMAILER: MIMEPROPID = MIMEPROPID(15i32);
36410pub const PID_HDR_XMSPRI: MIMEPROPID = MIMEPROPID(40i32);
36411pub const PID_HDR_XNEWSRDR: MIMEPROPID = MIMEPROPID(38i32);
36412pub const PID_HDR_XPRI: MIMEPROPID = MIMEPROPID(39i32);
36413pub const PID_HDR_XREF: MIMEPROPID = MIMEPROPID(36i32);
36414pub const PID_HDR_XUNSENT: MIMEPROPID = MIMEPROPID(59i32);
36415pub const PID_LAST: MIMEPROPID = MIMEPROPID(73i32);
36416pub const PID_PAR_BOUNDARY: MIMEPROPID = MIMEPROPID(42i32);
36417pub const PID_PAR_CHARSET: MIMEPROPID = MIMEPROPID(43i32);
36418pub const PID_PAR_FILENAME: MIMEPROPID = MIMEPROPID(41i32);
36419pub const PID_PAR_NAME: MIMEPROPID = MIMEPROPID(44i32);
36420pub const PIM_CHARSET: PROPINFOMASK = PROPINFOMASK(1i32);
36421pub const PIM_ENCODINGTYPE: PROPINFOMASK = PROPINFOMASK(2i32);
36422pub const PIM_FLAGS: PROPINFOMASK = PROPINFOMASK(8i32);
36423pub const PIM_PROPID: PROPINFOMASK = PROPINFOMASK(16i32);
36424pub const PIM_ROWNUMBER: PROPINFOMASK = PROPINFOMASK(4i32);
36425pub const PIM_VALUES: PROPINFOMASK = PROPINFOMASK(32i32);
36426pub const PIM_VTCURRENT: PROPINFOMASK = PROPINFOMASK(128i32);
36427pub const PIM_VTDEFAULT: PROPINFOMASK = PROPINFOMASK(64i32);
36428pub const PMS_HTML: u32 = 1u32;
36429pub const PMS_TEXT: u32 = 2u32;
36430pub type PREPROCESSMESSAGE = Option<
36431 unsafe extern "system" fn(
36432 lpvsession: *mut core::ffi::c_void,
36433 lpmessage: windows_core::Ref<'_, IMessage>,
36434 lpadrbook: windows_core::Ref<'_, IAddrBook>,
36435 lpfolder: windows_core::Ref<'_, IMAPIFolder>,
36436 allocatebuffer: LPALLOCATEBUFFER,
36437 allocatemore: LPALLOCATEMORE,
36438 freebuffer: LPFREEBUFFER,
36439 lpcoutbound: *mut u32,
36440 lpppmessage: *mut *mut Option<IMessage>,
36441 lppreciplist: *mut *mut ADRLIST,
36442 ) -> windows_core::HRESULT,
36443>;
36444pub const PRIHIGHEST: u32 = 32767u32;
36445pub const PRILOWEST: i32 = -32768i32;
36446pub const PRIO_NONURGENT: u32 = 4294967295u32;
36447pub const PRIO_NORMAL: u32 = 0u32;
36448pub const PRIO_URGENT: u32 = 1u32;
36449pub const PRIUSER: u32 = 0u32;
36450pub const PRIV_DL_ALLOW_OOF: u32 = 8u32;
36451pub const PRIV_DL_HIDE_MEMBERS: u32 = 1u32;
36452pub const PRIV_DL_REPORT_TO_ORIG: u32 = 2u32;
36453pub const PRIV_DL_REPORT_TO_OWNER: u32 = 4u32;
36454pub const PRMD_PAD: u32 = 3u32;
36455pub const PRMD_PAD_FOR_ACTIONS: u32 = 2u32;
36456pub const PROCESS_XP_HEADER_CACHE: u32 = 131072u32;
36457pub const PROFILE_DELEGATE: u32 = 2u32;
36458pub const PROFILE_PRIMARY_USER: u32 = 1u32;
36459pub const PROFILE_PUBLIC_STORE: u32 = 3u32;
36460pub const PROFILE_SUBSCRIPTION: u32 = 4u32;
36461pub const PROFILE_VERSION: u32 = 1281u32;
36462pub const PROPATTR_MANDATORY: u32 = 1u32;
36463pub const PROPATTR_NOT_PRESENT: u32 = 8u32;
36464pub const PROPATTR_READABLE: u32 = 2u32;
36465pub const PROPATTR_WRITEABLE: u32 = 4u32;
36466#[repr(transparent)]
36467#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
36468pub struct PROPINFOMASK(pub i32);
36469pub const PROP_ACCT_DELIVERY_FOLDER: u32 = 1638658u32;
36470pub const PROP_ACCT_DELIVERY_STORE: u32 = 1573122u32;
36471pub const PROP_ACCT_ID: u32 = 65539u32;
36472pub const PROP_ACCT_IS_EXCH: u32 = 1310723u32;
36473pub const PROP_ACCT_MINI_UID: u32 = 196611u32;
36474pub const PROP_ACCT_NAME: u32 = 131103u32;
36475pub const PROP_ACCT_PREFERENCES_UID: u32 = 2228482u32;
36476pub const PROP_ACCT_SEND_STAMP: u32 = 917535u32;
36477pub const PROP_ACCT_SENTITEMS_EID: u32 = 2097410u32;
36478pub const PROP_ACCT_STAMP: u32 = 851999u32;
36479pub const PROP_ACCT_USER_DISPLAY_NAME: u32 = 720927u32;
36480pub const PROP_ACCT_USER_EMAIL_ADDR: u32 = 786463u32;
36481pub const PROP_ID_INVALID: u32 = 65535u32;
36482pub const PROP_ID_NULL: u32 = 0u32;
36483pub const PROP_ID_SECURE_MAX: u32 = 26623u32;
36484pub const PROP_ID_SECURE_MIN: u32 = 26608u32;
36485pub const PROP_INET_PASSWORD: u32 = 16908319u32;
36486pub const PROP_INET_PORT: u32 = 17039363u32;
36487pub const PROP_INET_SERVER: u32 = 16777247u32;
36488pub const PROP_INET_SSL: u32 = 17104899u32;
36489pub const PROP_INET_USER: u32 = 16842783u32;
36490pub const PROP_INET_USE_SPA: u32 = 17301507u32;
36491pub const PROP_MAPI_EMSMDB_UID: u32 = 537460994u32;
36492pub const PROP_MAPI_IDENTITY_ENTRYID: u32 = 537002242u32;
36493pub const PROP_MAPI_TRANSPORT_FLAGS: u32 = 537919746u32;
36494pub const PROP_POP_LEAVE_ON_SERVER: u32 = 268435459u32;
36495pub const PROP_SMTP_AUTH_METHOD: u32 = 34078723u32;
36496pub const PROP_SMTP_PASSWORD: u32 = 33882143u32;
36497pub const PROP_SMTP_PORT: u32 = 33619971u32;
36498pub const PROP_SMTP_SECURE_CONNECTION: u32 = 34209795u32;
36499pub const PROP_SMTP_SERVER: u32 = 33554463u32;
36500pub const PROP_SMTP_SSL: u32 = 33685507u32;
36501pub const PROP_SMTP_USER: u32 = 33816607u32;
36502pub const PROP_SMTP_USE_AUTH: u32 = 33751043u32;
36503pub const PROP_SMTP_USE_SPA: u32 = 34013187u32;
36504pub const PROP_TYPE_MASK: u32 = 65535u32;
36505pub const PR_7BIT_DISPLAY_NAME: u32 = 973013022u32;
36506pub const PR_ABSTRACT: u32 = 1071251486u32;
36507pub const PR_ABSTRACT_A: u32 = 1071251486u32;
36508pub const PR_ABSTRACT_W: u32 = 1071251487u32;
36509pub const PR_AB_DEFAULT_DIR: u32 = 1023803650u32;
36510pub const PR_AB_DEFAULT_PAB: u32 = 1023869186u32;
36511pub const PR_AB_PROVIDERS: u32 = 1023475970u32;
36512pub const PR_AB_PROVIDER_ID: u32 = 907346178u32;
36513pub const PR_AB_SEARCH_PATH: u32 = 1023742210u32;
36514pub const PR_AB_SEARCH_PATH_UPDATE: u32 = 1024524546u32;
36515pub const PR_ACCESS: u32 = 267649027u32;
36516pub const PR_ACCESS_LEVEL: u32 = 267845635u32;
36517pub const PR_ACCOUNT: u32 = 973078558u32;
36518pub const PR_ACCOUNT_A: u32 = 973078558u32;
36519pub const PR_ACCOUNT_W: u32 = 973078559u32;
36520pub const PR_ACKNOWLEDGEMENT_MODE: u32 = 65539u32;
36521pub const PR_ACL_DATA: u32 = 1071644930u32;
36522pub const PR_ACL_TABLE: u32 = 1071644685u32;
36523pub const PR_ACTIVE_USER_ENTRYID: u32 = 1716650242u32;
36524pub const PR_ADDRBOOK_FOR_LOCAL_SITE_ENTRYID: u32 = 1713766658u32;
36525pub const PR_ADDRESS_BOOK_DISPLAY_NAME: u32 = 1072168990u32;
36526pub const PR_ADDRESS_BOOK_ENTRYID: u32 = 1715142914u32;
36527pub const PR_ADDRTYPE: u32 = 805437470u32;
36528pub const PR_ADDRTYPE_A: u32 = 805437470u32;
36529pub const PR_ADDRTYPE_W: u32 = 805437471u32;
36530pub const PR_ADDR_CC: u32 = 244842526u32;
36531pub const PR_ADDR_CC_A: u32 = 244842526u32;
36532pub const PR_ADDR_CC_W: u32 = 244842527u32;
36533pub const PR_ADDR_TO: u32 = 244776990u32;
36534pub const PR_ADMIN_SECURITY_DESCRIPTOR: u32 = 1025573122u32;
36535pub const PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML: u32 = 241893406u32;
36536pub const PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML_A: u32 = 241893406u32;
36537pub const PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML_W: u32 = 241893407u32;
36538pub const PR_ALTERNATE_RECIPIENT: u32 = 973144322u32;
36539pub const PR_ALTERNATE_RECIPIENT_ALLOWED: u32 = 131083u32;
36540pub const PR_ANR: u32 = 906756126u32;
36541pub const PR_ANR_A: u32 = 906756126u32;
36542pub const PR_ANR_W: u32 = 906756127u32;
36543pub const PR_ANTIVIRUS_SCAN_INFO: u32 = 243793950u32;
36544pub const PR_ANTIVIRUS_SCAN_STATUS: u32 = 243728387u32;
36545pub const PR_ANTIVIRUS_VENDOR: u32 = 243597342u32;
36546pub const PR_ANTIVIRUS_VERSION: u32 = 243662851u32;
36547pub const PR_ARCHIVE_DATE: u32 = 807338048u32;
36548pub const PR_ARCHIVE_PERIOD: u32 = 807272451u32;
36549pub const PR_ARCHIVE_TAG: u32 = 806879490u32;
36550pub const PR_ARRIVAL_TIME: u32 = 1717502016u32;
36551pub const PR_ASSISTANT: u32 = 976224286u32;
36552pub const PR_ASSISTANT_A: u32 = 976224286u32;
36553pub const PR_ASSISTANT_TELEPHONE_NUMBER: u32 = 976093214u32;
36554pub const PR_ASSISTANT_TELEPHONE_NUMBER_A: u32 = 976093214u32;
36555pub const PR_ASSISTANT_TELEPHONE_NUMBER_W: u32 = 976093215u32;
36556pub const PR_ASSISTANT_W: u32 = 976224287u32;
36557pub const PR_ASSOC_CONTENT_COUNT: u32 = 907476995u32;
36558pub const PR_ASSOC_MESSAGE_SIZE: u32 = 1723072515u32;
36559pub const PR_ASSOC_MESSAGE_SIZE_EXTENDED: u32 = 1723072532u32;
36560pub const PR_ASSOC_MSG_W_ATTACH_COUNT: u32 = 1722679299u32;
36561pub const PR_ATTACHMENT_X400_PARAMETERS: u32 = 922747138u32;
36562pub const PR_ATTACH_ADDITIONAL_INFO: u32 = 923730178u32;
36563pub const PR_ATTACH_CONTENT_ID: u32 = 923926558u32;
36564pub const PR_ATTACH_CONTENT_ID_A: u32 = 923926558u32;
36565pub const PR_ATTACH_CONTENT_ID_W: u32 = 923926559u32;
36566pub const PR_ATTACH_DATA_BIN: u32 = 922812674u32;
36567pub const PR_ATTACH_DATA_OBJ: u32 = 922812429u32;
36568pub const PR_ATTACH_ENCODING: u32 = 922878210u32;
36569pub const PR_ATTACH_EXTENSION: u32 = 922943518u32;
36570pub const PR_ATTACH_EXTENSION_A: u32 = 922943518u32;
36571pub const PR_ATTACH_EXTENSION_W: u32 = 922943519u32;
36572pub const PR_ATTACH_FILENAME: u32 = 923009054u32;
36573pub const PR_ATTACH_FILENAME_A: u32 = 923009054u32;
36574pub const PR_ATTACH_FILENAME_W: u32 = 923009055u32;
36575pub const PR_ATTACH_LONG_FILENAME: u32 = 923205662u32;
36576pub const PR_ATTACH_LONG_FILENAME_A: u32 = 923205662u32;
36577pub const PR_ATTACH_LONG_FILENAME_W: u32 = 923205663u32;
36578pub const PR_ATTACH_LONG_PATHNAME: u32 = 923598878u32;
36579pub const PR_ATTACH_LONG_PATHNAME_A: u32 = 923598878u32;
36580pub const PR_ATTACH_LONG_PATHNAME_W: u32 = 923598879u32;
36581pub const PR_ATTACH_METHOD: u32 = 923074563u32;
36582pub const PR_ATTACH_MIME_TAG: u32 = 923664414u32;
36583pub const PR_ATTACH_MIME_TAG_A: u32 = 923664414u32;
36584pub const PR_ATTACH_MIME_TAG_W: u32 = 923664415u32;
36585pub const PR_ATTACH_NUM: u32 = 237043715u32;
36586pub const PR_ATTACH_ON_ASSOC_MSG_COUNT: u32 = 1722941443u32;
36587pub const PR_ATTACH_ON_NORMAL_MSG_COUNT: u32 = 1722875907u32;
36588pub const PR_ATTACH_PATHNAME: u32 = 923271198u32;
36589pub const PR_ATTACH_PATHNAME_A: u32 = 923271198u32;
36590pub const PR_ATTACH_PATHNAME_W: u32 = 923271199u32;
36591pub const PR_ATTACH_RENDERING: u32 = 923336962u32;
36592pub const PR_ATTACH_SIZE: u32 = 236978179u32;
36593pub const PR_ATTACH_TAG: u32 = 923402498u32;
36594pub const PR_ATTACH_TRANSPORT_NAME: u32 = 923533342u32;
36595pub const PR_ATTACH_TRANSPORT_NAME_A: u32 = 923533342u32;
36596pub const PR_ATTACH_TRANSPORT_NAME_W: u32 = 923533343u32;
36597pub const PR_ATTR_HIDDEN: u32 = 284426251u32;
36598pub const PR_ATTR_READONLY: u32 = 284557323u32;
36599pub const PR_ATTR_SYSTEM: u32 = 284491787u32;
36600pub const PR_AUTHORIZING_USERS: u32 = 196866u32;
36601pub const PR_AUTO_ADD_NEW_SUBS: u32 = 1709506571u32;
36602pub const PR_AUTO_FORWARDED: u32 = 327691u32;
36603pub const PR_AUTO_FORWARD_COMMENT: u32 = 262174u32;
36604pub const PR_AUTO_FORWARD_COMMENT_A: u32 = 262174u32;
36605pub const PR_AUTO_FORWARD_COMMENT_W: u32 = 262175u32;
36606pub const PR_AUTO_RESET: u32 = 1728843848u32;
36607pub const PR_AUTO_RESPONSE_SUPPRESS: u32 = 1071579139u32;
36608pub const PR_BEEPER_TELEPHONE_NUMBER: u32 = 975241246u32;
36609pub const PR_BEEPER_TELEPHONE_NUMBER_A: u32 = 975241246u32;
36610pub const PR_BEEPER_TELEPHONE_NUMBER_W: u32 = 975241247u32;
36611pub const PR_BILATERAL_INFO: u32 = 1071382786u32;
36612pub const PR_BIRTHDAY: u32 = 977403968u32;
36613pub const PR_BLOCK_STATUS: u32 = 278265859u32;
36614pub const PR_BODY: u32 = 268435486u32;
36615pub const PR_BODY_A: u32 = 268435486u32;
36616pub const PR_BODY_CRC: u32 = 236716035u32;
36617pub const PR_BODY_W: u32 = 268435487u32;
36618pub const PR_BUSINESS2_TELEPHONE_NUMBER: u32 = 974848030u32;
36619pub const PR_BUSINESS2_TELEPHONE_NUMBER_A: u32 = 974848030u32;
36620pub const PR_BUSINESS2_TELEPHONE_NUMBER_W: u32 = 974848031u32;
36621pub const PR_BUSINESS_ADDRESS_CITY: u32 = 975634462u32;
36622pub const PR_BUSINESS_ADDRESS_CITY_A: u32 = 975634462u32;
36623pub const PR_BUSINESS_ADDRESS_CITY_W: u32 = 975634463u32;
36624pub const PR_BUSINESS_ADDRESS_COUNTRY: u32 = 975568926u32;
36625pub const PR_BUSINESS_ADDRESS_COUNTRY_A: u32 = 975568926u32;
36626pub const PR_BUSINESS_ADDRESS_COUNTRY_W: u32 = 975568927u32;
36627pub const PR_BUSINESS_ADDRESS_POSTAL_CODE: u32 = 975831070u32;
36628pub const PR_BUSINESS_ADDRESS_POSTAL_CODE_A: u32 = 975831070u32;
36629pub const PR_BUSINESS_ADDRESS_POSTAL_CODE_W: u32 = 975831071u32;
36630pub const PR_BUSINESS_ADDRESS_POST_OFFICE_BOX: u32 = 975896606u32;
36631pub const PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_A: u32 = 975896606u32;
36632pub const PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_W: u32 = 975896607u32;
36633pub const PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE: u32 = 975699998u32;
36634pub const PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_A: u32 = 975699998u32;
36635pub const PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_W: u32 = 975699999u32;
36636pub const PR_BUSINESS_ADDRESS_STREET: u32 = 975765534u32;
36637pub const PR_BUSINESS_ADDRESS_STREET_A: u32 = 975765534u32;
36638pub const PR_BUSINESS_ADDRESS_STREET_W: u32 = 975765535u32;
36639pub const PR_BUSINESS_FAX_NUMBER: u32 = 975437854u32;
36640pub const PR_BUSINESS_FAX_NUMBER_A: u32 = 975437854u32;
36641pub const PR_BUSINESS_FAX_NUMBER_W: u32 = 975437855u32;
36642pub const PR_BUSINESS_HOME_PAGE: u32 = 978386974u32;
36643pub const PR_BUSINESS_HOME_PAGE_A: u32 = 978386974u32;
36644pub const PR_BUSINESS_HOME_PAGE_W: u32 = 978386975u32;
36645pub const PR_BUSINESS_TELEPHONE_NUMBER: u32 = 973602846u32;
36646pub const PR_BUSINESS_TELEPHONE_NUMBER_A: u32 = 973602846u32;
36647pub const PR_BUSINESS_TELEPHONE_NUMBER_W: u32 = 973602847u32;
36648pub const PR_CACHED_COLUMN_COUNT: u32 = 1722548227u32;
36649pub const PR_CALLBACK_TELEPHONE_NUMBER: u32 = 973209630u32;
36650pub const PR_CALLBACK_TELEPHONE_NUMBER_A: u32 = 973209630u32;
36651pub const PR_CALLBACK_TELEPHONE_NUMBER_W: u32 = 973209631u32;
36652pub const PR_CAR_TELEPHONE_NUMBER: u32 = 975044638u32;
36653pub const PR_CAR_TELEPHONE_NUMBER_A: u32 = 975044638u32;
36654pub const PR_CAR_TELEPHONE_NUMBER_W: u32 = 975044639u32;
36655pub const PR_CATALOG: u32 = 240845058u32;
36656pub const PR_CATEG_COUNT: u32 = 1722482691u32;
36657pub const PR_CELLULAR_TELEPHONE_NUMBER: u32 = 974913566u32;
36658pub const PR_CELLULAR_TELEPHONE_NUMBER_A: u32 = 974913566u32;
36659pub const PR_CELLULAR_TELEPHONE_NUMBER_W: u32 = 974913567u32;
36660pub const PR_CHANGE_ADVISOR: u32 = 1714683917u32;
36661pub const PR_CHANGE_KEY: u32 = 1709310210u32;
36662pub const PR_CHANGE_NOTIFICATION_GUID: u32 = 1714880584u32;
36663pub const PR_CHILDRENS_NAMES: u32 = 978849822u32;
36664pub const PR_CHILDRENS_NAMES_A: u32 = 978849822u32;
36665pub const PR_CHILDRENS_NAMES_W: u32 = 978849823u32;
36666pub const PR_CI_NOTIFICATION_ENABLED: u32 = 240975883u32;
36667pub const PR_CI_SEARCH_ENABLED: u32 = 240910347u32;
36668pub const PR_CLIENT_ACTIONS: u32 = 1715798274u32;
36669pub const PR_CLIENT_SUBMIT_TIME: u32 = 3735616u32;
36670pub const PR_CODE_PAGE_ID: u32 = 1724055555u32;
36671pub const PR_COLLECTOR: u32 = 1714290701u32;
36672pub const PR_COMMENT: u32 = 805568542u32;
36673pub const PR_COMMENT_A: u32 = 805568542u32;
36674pub const PR_COMMENT_W: u32 = 805568543u32;
36675pub const PR_COMMON_VIEWS_ENTRYID: u32 = 904265986u32;
36676pub const PR_COMPANY_MAIN_PHONE_NUMBER: u32 = 978780190u32;
36677pub const PR_COMPANY_MAIN_PHONE_NUMBER_A: u32 = 978780190u32;
36678pub const PR_COMPANY_MAIN_PHONE_NUMBER_W: u32 = 978780191u32;
36679pub const PR_COMPANY_NAME: u32 = 974520350u32;
36680pub const PR_COMPANY_NAME_A: u32 = 974520350u32;
36681pub const PR_COMPANY_NAME_W: u32 = 974520351u32;
36682pub const PR_COMPUTER_NETWORK_NAME: u32 = 977862686u32;
36683pub const PR_COMPUTER_NETWORK_NAME_A: u32 = 977862686u32;
36684pub const PR_COMPUTER_NETWORK_NAME_W: u32 = 977862687u32;
36685pub const PR_CONFLICT_ENTRYID: u32 = 1072693506u32;
36686pub const PR_CONTACT_ADDRTYPES: u32 = 978587678u32;
36687pub const PR_CONTACT_ADDRTYPES_A: u32 = 978587678u32;
36688pub const PR_CONTACT_ADDRTYPES_W: u32 = 978587679u32;
36689pub const PR_CONTACT_COUNT: u32 = 1723269123u32;
36690pub const PR_CONTACT_DEFAULT_ADDRESS_INDEX: u32 = 978649091u32;
36691pub const PR_CONTACT_EMAIL_ADDRESSES: u32 = 978718750u32;
36692pub const PR_CONTACT_EMAIL_ADDRESSES_A: u32 = 978718750u32;
36693pub const PR_CONTACT_EMAIL_ADDRESSES_W: u32 = 978718751u32;
36694pub const PR_CONTACT_ENTRYIDS: u32 = 978522370u32;
36695pub const PR_CONTACT_VERSION: u32 = 978452552u32;
36696pub const PR_CONTAINER_CLASS: u32 = 907214878u32;
36697pub const PR_CONTAINER_CLASS_A: u32 = 907214878u32;
36698pub const PR_CONTAINER_CLASS_W: u32 = 907214879u32;
36699pub const PR_CONTAINER_CONTENTS: u32 = 906952717u32;
36700pub const PR_CONTAINER_FLAGS: u32 = 905969667u32;
36701pub const PR_CONTAINER_HIERARCHY: u32 = 906887181u32;
36702pub const PR_CONTAINER_MODIFY_VERSION: u32 = 907280404u32;
36703pub const PR_CONTENTS_SORT_ORDER: u32 = 906825731u32;
36704pub const PR_CONTENTS_SYNCHRONIZER: u32 = 1714225165u32;
36705pub const PR_CONTENT_CONFIDENTIALITY_ALGORITHM_ID: u32 = 393474u32;
36706pub const PR_CONTENT_CORRELATOR: u32 = 459010u32;
36707pub const PR_CONTENT_COUNT: u32 = 906100739u32;
36708pub const PR_CONTENT_IDENTIFIER: u32 = 524318u32;
36709pub const PR_CONTENT_IDENTIFIER_A: u32 = 524318u32;
36710pub const PR_CONTENT_IDENTIFIER_W: u32 = 524319u32;
36711pub const PR_CONTENT_INTEGRITY_CHECK: u32 = 201326850u32;
36712pub const PR_CONTENT_LENGTH: u32 = 589827u32;
36713pub const PR_CONTENT_RETURN_REQUESTED: u32 = 655371u32;
36714pub const PR_CONTENT_SEARCH_KEY: u32 = 1717960962u32;
36715pub const PR_CONTENT_UNREAD: u32 = 906166275u32;
36716pub const PR_CONTROL_FLAGS: u32 = 1056964611u32;
36717pub const PR_CONTROL_ID: u32 = 1057423618u32;
36718pub const PR_CONTROL_STRUCTURE: u32 = 1057030402u32;
36719pub const PR_CONTROL_TYPE: u32 = 1057095683u32;
36720pub const PR_CONVERSATION_ID: u32 = 806551810u32;
36721pub const PR_CONVERSATION_INDEX: u32 = 7405826u32;
36722pub const PR_CONVERSATION_KEY: u32 = 721154u32;
36723pub const PR_CONVERSATION_TOPIC: u32 = 7340062u32;
36724pub const PR_CONVERSATION_TOPIC_A: u32 = 7340062u32;
36725pub const PR_CONVERSATION_TOPIC_W: u32 = 7340063u32;
36726pub const PR_CONVERSION_EITS: u32 = 786690u32;
36727pub const PR_CONVERSION_PROHIBITED: u32 = 973275147u32;
36728pub const PR_CONVERSION_WITH_LOSS_PROHIBITED: u32 = 851979u32;
36729pub const PR_CONVERTED_EITS: u32 = 917762u32;
36730pub const PR_CORRELATE: u32 = 235667467u32;
36731pub const PR_CORRELATE_MTSID: u32 = 235733250u32;
36732pub const PR_COUNTRY: u32 = 975568926u32;
36733pub const PR_COUNTRY_A: u32 = 975568926u32;
36734pub const PR_COUNTRY_W: u32 = 975568927u32;
36735pub const PR_CREATE_TEMPLATES: u32 = 906231821u32;
36736pub const PR_CREATION_TIME: u32 = 805765184u32;
36737pub const PR_CREATION_VERSION: u32 = 236519444u32;
36738pub const PR_CREATOR_ENTRYID: u32 = 1073283330u32;
36739pub const PR_CREATOR_NAME: u32 = 1073217566u32;
36740pub const PR_CREATOR_SID: u32 = 240648450u32;
36741pub const PR_CREATOR_SID_AS_XML: u32 = 241958942u32;
36742pub const PR_CURRENT_VERSION: u32 = 234881044u32;
36743pub const PR_CUSTOMER_ID: u32 = 977928222u32;
36744pub const PR_CUSTOMER_ID_A: u32 = 977928222u32;
36745pub const PR_CUSTOMER_ID_W: u32 = 977928223u32;
36746pub const PR_DAM_BACK_PATCHED: u32 = 1715929099u32;
36747pub const PR_DAM_ORIGINAL_ENTRYID: u32 = 1715863810u32;
36748pub const PR_DAV_TRANSFER_SECURITY_DESCRIPTOR: u32 = 243532034u32;
36749pub const PR_DEFAULT_PROFILE: u32 = 1023672331u32;
36750pub const PR_DEFAULT_STORE: u32 = 872415243u32;
36751pub const PR_DEFAULT_VIEW_ENTRYID: u32 = 907411714u32;
36752pub const PR_DEFERRED_DELIVERY_TIME: u32 = 983104u32;
36753pub const PR_DEFERRED_SEND_NUMBER: u32 = 1072365571u32;
36754pub const PR_DEFERRED_SEND_TIME: u32 = 1072627776u32;
36755pub const PR_DEFERRED_SEND_UNITS: u32 = 1072431107u32;
36756pub const PR_DEF_CREATE_DL: u32 = 907084034u32;
36757pub const PR_DEF_CREATE_MAILUSER: u32 = 907149570u32;
36758pub const PR_DELEGATED_BY_RULE: u32 = 1071841291u32;
36759pub const PR_DELEGATION: u32 = 8257794u32;
36760pub const PR_DELETED_ASSOC_MESSAGE_SIZE_EXTENDED: u32 = 1721565204u32;
36761pub const PR_DELETED_ASSOC_MSG_COUNT: u32 = 1715666947u32;
36762pub const PR_DELETED_COUNT_TOTAL: u32 = 1728774147u32;
36763pub const PR_DELETED_FOLDER_COUNT: u32 = 1715535875u32;
36764pub const PR_DELETED_MESSAGE_SIZE_EXTENDED: u32 = 1721434132u32;
36765pub const PR_DELETED_MSG_COUNT: u32 = 1715470339u32;
36766pub const PR_DELETED_NORMAL_MESSAGE_SIZE_EXTENDED: u32 = 1721499668u32;
36767pub const PR_DELETED_ON: u32 = 1720647744u32;
36768pub const PR_DELETE_AFTER_SUBMIT: u32 = 234946571u32;
36769pub const PR_DELIVERY_POINT: u32 = 201785347u32;
36770pub const PR_DELIVER_TIME: u32 = 1048640u32;
36771pub const PR_DELTAX: u32 = 1057161219u32;
36772pub const PR_DELTAY: u32 = 1057226755u32;
36773pub const PR_DEPARTMENT_NAME: u32 = 974651422u32;
36774pub const PR_DEPARTMENT_NAME_A: u32 = 974651422u32;
36775pub const PR_DEPARTMENT_NAME_W: u32 = 974651423u32;
36776pub const PR_DEPTH: u32 = 805634051u32;
36777pub const PR_DESIGN_IN_PROGRESS: u32 = 1071906827u32;
36778pub const PR_DETAILS_TABLE: u32 = 906297357u32;
36779pub const PR_DISABLE_FULL_FIDELITY: u32 = 284295179u32;
36780pub const PR_DISABLE_PERUSER_READ: u32 = 1724186635u32;
36781pub const PR_DISABLE_WINSOCK: u32 = 1712848899u32;
36782pub const PR_DISCARD_REASON: u32 = 1114115u32;
36783pub const PR_DISCLOSE_RECIPIENTS: u32 = 973340683u32;
36784pub const PR_DISCLOSURE_OF_RECIPIENTS: u32 = 1179659u32;
36785pub const PR_DISCRETE_VALUES: u32 = 235798539u32;
36786pub const PR_DISC_VAL: u32 = 4849675u32;
36787pub const PR_DISPLAY_BCC: u32 = 235012126u32;
36788pub const PR_DISPLAY_BCC_A: u32 = 235012126u32;
36789pub const PR_DISPLAY_BCC_W: u32 = 235012127u32;
36790pub const PR_DISPLAY_CC: u32 = 235077662u32;
36791pub const PR_DISPLAY_CC_A: u32 = 235077662u32;
36792pub const PR_DISPLAY_CC_W: u32 = 235077663u32;
36793pub const PR_DISPLAY_NAME: u32 = 805371934u32;
36794pub const PR_DISPLAY_NAME_A: u32 = 805371934u32;
36795pub const PR_DISPLAY_NAME_PREFIX: u32 = 977600542u32;
36796pub const PR_DISPLAY_NAME_PREFIX_A: u32 = 977600542u32;
36797pub const PR_DISPLAY_NAME_PREFIX_W: u32 = 977600543u32;
36798pub const PR_DISPLAY_NAME_W: u32 = 805371935u32;
36799pub const PR_DISPLAY_TO: u32 = 235143198u32;
36800pub const PR_DISPLAY_TO_A: u32 = 235143198u32;
36801pub const PR_DISPLAY_TO_W: u32 = 235143199u32;
36802pub const PR_DISPLAY_TYPE: u32 = 956301315u32;
36803pub const PR_DISPLAY_TYPE_EX: u32 = 956628995u32;
36804pub const PR_DL_EXPANSION_HISTORY: u32 = 1245442u32;
36805pub const PR_DL_EXPANSION_PROHIBITED: u32 = 1310731u32;
36806pub const PR_DL_REPORT_FLAGS: u32 = 1071316995u32;
36807pub const PR_EFORMS_FOR_LOCALE_ENTRYID: u32 = 1713635586u32;
36808pub const PR_EFORMS_LOCALE_ID: u32 = 1072234499u32;
36809pub const PR_EFORMS_REGISTRY_ENTRYID: u32 = 1713438978u32;
36810pub const PR_EMAIL_ADDRESS: u32 = 805503006u32;
36811pub const PR_EMAIL_ADDRESS_A: u32 = 805503006u32;
36812pub const PR_EMAIL_ADDRESS_W: u32 = 805503007u32;
36813pub const PR_EMS_AB_ACCESS_CATEGORY: u32 = 2151940099u32;
36814pub const PR_EMS_AB_ACTIVATION_SCHEDULE: u32 = 2152005890u32;
36815pub const PR_EMS_AB_ACTIVATION_STYLE: u32 = 2152071171u32;
36816pub const PR_EMS_AB_ADC_GLOBAL_NAMES: u32 = 2356154398u32;
36817pub const PR_EMS_AB_ADC_GLOBAL_NAMES_A: u32 = 2356154398u32;
36818pub const PR_EMS_AB_ADC_GLOBAL_NAMES_W: u32 = 2356154399u32;
36819pub const PR_EMS_AB_ADDRESS_ENTRY_DISPLAY_TABLE: u32 = 2148991234u32;
36820pub const PR_EMS_AB_ADDRESS_ENTRY_DISPLAY_TABLE_MSDOS: u32 = 2152136962u32;
36821pub const PR_EMS_AB_ADDRESS_SYNTAX: u32 = 2149056770u32;
36822pub const PR_EMS_AB_ADDRESS_TYPE: u32 = 2152202270u32;
36823pub const PR_EMS_AB_ADDRESS_TYPE_A: u32 = 2152202270u32;
36824pub const PR_EMS_AB_ADDRESS_TYPE_W: u32 = 2152202271u32;
36825pub const PR_EMS_AB_ADMD: u32 = 2152267806u32;
36826pub const PR_EMS_AB_ADMD_A: u32 = 2152267806u32;
36827pub const PR_EMS_AB_ADMD_W: u32 = 2152267807u32;
36828pub const PR_EMS_AB_ADMIN_DESCRIPTION: u32 = 2152333342u32;
36829pub const PR_EMS_AB_ADMIN_DESCRIPTION_A: u32 = 2152333342u32;
36830pub const PR_EMS_AB_ADMIN_DESCRIPTION_W: u32 = 2152333343u32;
36831pub const PR_EMS_AB_ADMIN_DISPLAY_NAME: u32 = 2152398878u32;
36832pub const PR_EMS_AB_ADMIN_DISPLAY_NAME_A: u32 = 2152398878u32;
36833pub const PR_EMS_AB_ADMIN_DISPLAY_NAME_W: u32 = 2152398879u32;
36834pub const PR_EMS_AB_ADMIN_EXTENSION_DLL: u32 = 2152464414u32;
36835pub const PR_EMS_AB_ADMIN_EXTENSION_DLL_A: u32 = 2152464414u32;
36836pub const PR_EMS_AB_ADMIN_EXTENSION_DLL_W: u32 = 2152464415u32;
36837pub const PR_EMS_AB_ALIASED_OBJECT_NAME: u32 = 2152529950u32;
36838pub const PR_EMS_AB_ALIASED_OBJECT_NAME_A: u32 = 2152529950u32;
36839pub const PR_EMS_AB_ALIASED_OBJECT_NAME_O: u32 = 2152529933u32;
36840pub const PR_EMS_AB_ALIASED_OBJECT_NAME_T: u32 = 2152529950u32;
36841pub const PR_EMS_AB_ALIASED_OBJECT_NAME_W: u32 = 2152529951u32;
36842pub const PR_EMS_AB_ALT_RECIPIENT: u32 = 2152595486u32;
36843pub const PR_EMS_AB_ALT_RECIPIENT_A: u32 = 2152595486u32;
36844pub const PR_EMS_AB_ALT_RECIPIENT_BL: u32 = 2152665118u32;
36845pub const PR_EMS_AB_ALT_RECIPIENT_BL_A: u32 = 2152665118u32;
36846pub const PR_EMS_AB_ALT_RECIPIENT_BL_O: u32 = 2152661005u32;
36847pub const PR_EMS_AB_ALT_RECIPIENT_BL_T: u32 = 2152665118u32;
36848pub const PR_EMS_AB_ALT_RECIPIENT_BL_W: u32 = 2152665119u32;
36849pub const PR_EMS_AB_ALT_RECIPIENT_O: u32 = 2152595469u32;
36850pub const PR_EMS_AB_ALT_RECIPIENT_T: u32 = 2152595486u32;
36851pub const PR_EMS_AB_ALT_RECIPIENT_W: u32 = 2152595487u32;
36852pub const PR_EMS_AB_ANCESTOR_ID: u32 = 2152726786u32;
36853pub const PR_EMS_AB_ANONYMOUS_ACCESS: u32 = 2173108235u32;
36854pub const PR_EMS_AB_ANONYMOUS_ACCOUNT: u32 = 2351300638u32;
36855pub const PR_EMS_AB_ANONYMOUS_ACCOUNT_A: u32 = 2351300638u32;
36856pub const PR_EMS_AB_ANONYMOUS_ACCOUNT_W: u32 = 2351300639u32;
36857pub const PR_EMS_AB_ASSOCIATION_LIFETIME: u32 = 2152857603u32;
36858pub const PR_EMS_AB_ASSOC_NT_ACCOUNT: u32 = 2150039810u32;
36859pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP: u32 = 2175074334u32;
36860pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_A: u32 = 2175074334u32;
36861pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_O: u32 = 2175074317u32;
36862pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_T: u32 = 2175074334u32;
36863pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_W: u32 = 2175074335u32;
36864pub const PR_EMS_AB_ASSOC_REMOTE_DXA: u32 = 2152796190u32;
36865pub const PR_EMS_AB_ASSOC_REMOTE_DXA_A: u32 = 2152796190u32;
36866pub const PR_EMS_AB_ASSOC_REMOTE_DXA_O: u32 = 2152792077u32;
36867pub const PR_EMS_AB_ASSOC_REMOTE_DXA_T: u32 = 2152796190u32;
36868pub const PR_EMS_AB_ASSOC_REMOTE_DXA_W: u32 = 2152796191u32;
36869pub const PR_EMS_AB_ATTRIBUTE_CERTIFICATE: u32 = 2353336578u32;
36870pub const PR_EMS_AB_AUTHENTICATION_TO_USE: u32 = 2174353438u32;
36871pub const PR_EMS_AB_AUTHENTICATION_TO_USE_A: u32 = 2174353438u32;
36872pub const PR_EMS_AB_AUTHENTICATION_TO_USE_W: u32 = 2174353439u32;
36873pub const PR_EMS_AB_AUTHORITY_REVOCATION_LIST: u32 = 2149978370u32;
36874pub const PR_EMS_AB_AUTHORIZED_DOMAIN: u32 = 2152988702u32;
36875pub const PR_EMS_AB_AUTHORIZED_DOMAIN_A: u32 = 2152988702u32;
36876pub const PR_EMS_AB_AUTHORIZED_DOMAIN_W: u32 = 2152988703u32;
36877pub const PR_EMS_AB_AUTHORIZED_PASSWORD: u32 = 2153054466u32;
36878pub const PR_EMS_AB_AUTHORIZED_PASSWORD_CONFIRM: u32 = 2173829378u32;
36879pub const PR_EMS_AB_AUTHORIZED_USER: u32 = 2153119774u32;
36880pub const PR_EMS_AB_AUTHORIZED_USER_A: u32 = 2153119774u32;
36881pub const PR_EMS_AB_AUTHORIZED_USER_W: u32 = 2153119775u32;
36882pub const PR_EMS_AB_AUTH_ORIG_BL: u32 = 2152927262u32;
36883pub const PR_EMS_AB_AUTH_ORIG_BL_A: u32 = 2152927262u32;
36884pub const PR_EMS_AB_AUTH_ORIG_BL_O: u32 = 2152923149u32;
36885pub const PR_EMS_AB_AUTH_ORIG_BL_T: u32 = 2152927262u32;
36886pub const PR_EMS_AB_AUTH_ORIG_BL_W: u32 = 2152927263u32;
36887pub const PR_EMS_AB_AUTOREPLY: u32 = 2148204555u32;
36888pub const PR_EMS_AB_AUTOREPLY_MESSAGE: u32 = 2148139038u32;
36889pub const PR_EMS_AB_AUTOREPLY_MESSAGE_A: u32 = 2148139038u32;
36890pub const PR_EMS_AB_AUTOREPLY_MESSAGE_W: u32 = 2148139039u32;
36891pub const PR_EMS_AB_AUTOREPLY_SUBJECT: u32 = 2151546910u32;
36892pub const PR_EMS_AB_AUTOREPLY_SUBJECT_A: u32 = 2151546910u32;
36893pub const PR_EMS_AB_AUTOREPLY_SUBJECT_W: u32 = 2151546911u32;
36894pub const PR_EMS_AB_AVAILABLE_AUTHORIZATION_PACKAGES: u32 = 2172719134u32;
36895pub const PR_EMS_AB_AVAILABLE_AUTHORIZATION_PACKAGES_A: u32 = 2172719134u32;
36896pub const PR_EMS_AB_AVAILABLE_AUTHORIZATION_PACKAGES_W: u32 = 2172719135u32;
36897pub const PR_EMS_AB_AVAILABLE_DISTRIBUTIONS: u32 = 2173370398u32;
36898pub const PR_EMS_AB_AVAILABLE_DISTRIBUTIONS_A: u32 = 2173370398u32;
36899pub const PR_EMS_AB_AVAILABLE_DISTRIBUTIONS_W: u32 = 2173370399u32;
36900pub const PR_EMS_AB_BRIDGEHEAD_SERVERS: u32 = 2171867166u32;
36901pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_A: u32 = 2171867166u32;
36902pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_O: u32 = 2171863053u32;
36903pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_T: u32 = 2171867166u32;
36904pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_W: u32 = 2171867167u32;
36905pub const PR_EMS_AB_BUSINESS_CATEGORY: u32 = 2153189406u32;
36906pub const PR_EMS_AB_BUSINESS_CATEGORY_A: u32 = 2153189406u32;
36907pub const PR_EMS_AB_BUSINESS_CATEGORY_W: u32 = 2153189407u32;
36908pub const PR_EMS_AB_BUSINESS_ROLES: u32 = 2149777666u32;
36909pub const PR_EMS_AB_CAN_CREATE_PF: u32 = 2153254942u32;
36910pub const PR_EMS_AB_CAN_CREATE_PF_A: u32 = 2153254942u32;
36911pub const PR_EMS_AB_CAN_CREATE_PF_BL: u32 = 2153320478u32;
36912pub const PR_EMS_AB_CAN_CREATE_PF_BL_A: u32 = 2153320478u32;
36913pub const PR_EMS_AB_CAN_CREATE_PF_BL_O: u32 = 2153316365u32;
36914pub const PR_EMS_AB_CAN_CREATE_PF_BL_T: u32 = 2153320478u32;
36915pub const PR_EMS_AB_CAN_CREATE_PF_BL_W: u32 = 2153320479u32;
36916pub const PR_EMS_AB_CAN_CREATE_PF_DL: u32 = 2153386014u32;
36917pub const PR_EMS_AB_CAN_CREATE_PF_DL_A: u32 = 2153386014u32;
36918pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL: u32 = 2153451550u32;
36919pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_A: u32 = 2153451550u32;
36920pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_O: u32 = 2153447437u32;
36921pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_T: u32 = 2153451550u32;
36922pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_W: u32 = 2153451551u32;
36923pub const PR_EMS_AB_CAN_CREATE_PF_DL_O: u32 = 2153381901u32;
36924pub const PR_EMS_AB_CAN_CREATE_PF_DL_T: u32 = 2153386014u32;
36925pub const PR_EMS_AB_CAN_CREATE_PF_DL_W: u32 = 2153386015u32;
36926pub const PR_EMS_AB_CAN_CREATE_PF_O: u32 = 2153250829u32;
36927pub const PR_EMS_AB_CAN_CREATE_PF_T: u32 = 2153254942u32;
36928pub const PR_EMS_AB_CAN_CREATE_PF_W: u32 = 2153254943u32;
36929pub const PR_EMS_AB_CAN_NOT_CREATE_PF: u32 = 2153517086u32;
36930pub const PR_EMS_AB_CAN_NOT_CREATE_PF_A: u32 = 2153517086u32;
36931pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL: u32 = 2153582622u32;
36932pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_A: u32 = 2153582622u32;
36933pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_O: u32 = 2153578509u32;
36934pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_T: u32 = 2153582622u32;
36935pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_W: u32 = 2153582623u32;
36936pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL: u32 = 2153648158u32;
36937pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_A: u32 = 2153648158u32;
36938pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL: u32 = 2153713694u32;
36939pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_A: u32 = 2153713694u32;
36940pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_O: u32 = 2153709581u32;
36941pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_T: u32 = 2153713694u32;
36942pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_W: u32 = 2153713695u32;
36943pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_O: u32 = 2153644045u32;
36944pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_T: u32 = 2153648158u32;
36945pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_W: u32 = 2153648159u32;
36946pub const PR_EMS_AB_CAN_NOT_CREATE_PF_O: u32 = 2153512973u32;
36947pub const PR_EMS_AB_CAN_NOT_CREATE_PF_T: u32 = 2153517086u32;
36948pub const PR_EMS_AB_CAN_NOT_CREATE_PF_W: u32 = 2153517087u32;
36949pub const PR_EMS_AB_CAN_PRESERVE_DNS: u32 = 2153775115u32;
36950pub const PR_EMS_AB_CA_CERTIFICATE: u32 = 2147684610u32;
36951pub const PR_EMS_AB_CERTIFICATE_CHAIN_V3: u32 = 2351366402u32;
36952pub const PR_EMS_AB_CERTIFICATE_REVOCATION_LIST: u32 = 2148925698u32;
36953pub const PR_EMS_AB_CERTIFICATE_REVOCATION_LIST_V1: u32 = 2351497474u32;
36954pub const PR_EMS_AB_CERTIFICATE_REVOCATION_LIST_V3: u32 = 2351431938u32;
36955pub const PR_EMS_AB_CHARACTER_SET: u32 = 2172977182u32;
36956pub const PR_EMS_AB_CHARACTER_SET_A: u32 = 2172977182u32;
36957pub const PR_EMS_AB_CHARACTER_SET_LIST: u32 = 2172784670u32;
36958pub const PR_EMS_AB_CHARACTER_SET_LIST_A: u32 = 2172784670u32;
36959pub const PR_EMS_AB_CHARACTER_SET_LIST_W: u32 = 2172784671u32;
36960pub const PR_EMS_AB_CHARACTER_SET_W: u32 = 2172977183u32;
36961pub const PR_EMS_AB_CHILD_RDNS: u32 = 4294447134u32;
36962pub const PR_EMS_AB_CLIENT_ACCESS_ENABLED: u32 = 2351169547u32;
36963pub const PR_EMS_AB_CLOCK_ALERT_OFFSET: u32 = 2153840643u32;
36964pub const PR_EMS_AB_CLOCK_ALERT_REPAIR: u32 = 2153906187u32;
36965pub const PR_EMS_AB_CLOCK_WARNING_OFFSET: u32 = 2153971715u32;
36966pub const PR_EMS_AB_CLOCK_WARNING_REPAIR: u32 = 2154037259u32;
36967pub const PR_EMS_AB_COMPROMISED_KEY_LIST: u32 = 2177106178u32;
36968pub const PR_EMS_AB_COMPUTER_NAME: u32 = 2154102814u32;
36969pub const PR_EMS_AB_COMPUTER_NAME_A: u32 = 2154102814u32;
36970pub const PR_EMS_AB_COMPUTER_NAME_W: u32 = 2154102815u32;
36971pub const PR_EMS_AB_CONNECTED_DOMAINS: u32 = 2154172446u32;
36972pub const PR_EMS_AB_CONNECTED_DOMAINS_A: u32 = 2154172446u32;
36973pub const PR_EMS_AB_CONNECTED_DOMAINS_W: u32 = 2154172447u32;
36974pub const PR_EMS_AB_CONNECTION_LIST_FILTER: u32 = 2172649730u32;
36975pub const PR_EMS_AB_CONNECTION_LIST_FILTER_TYPE: u32 = 2176057347u32;
36976pub const PR_EMS_AB_CONNECTION_TYPE: u32 = 2175991819u32;
36977pub const PR_EMS_AB_CONTAINERID: u32 = 4294770691u32;
36978pub const PR_EMS_AB_CONTAINER_INFO: u32 = 2154233859u32;
36979pub const PR_EMS_AB_CONTENT_TYPE: u32 = 2173042691u32;
36980pub const PR_EMS_AB_CONTROL_MSG_FOLDER_ID: u32 = 2173174018u32;
36981pub const PR_EMS_AB_CONTROL_MSG_RULES: u32 = 2173305090u32;
36982pub const PR_EMS_AB_COST: u32 = 2154299395u32;
36983pub const PR_EMS_AB_COUNTRY_NAME: u32 = 2154364958u32;
36984pub const PR_EMS_AB_COUNTRY_NAME_A: u32 = 2154364958u32;
36985pub const PR_EMS_AB_COUNTRY_NAME_W: u32 = 2154364959u32;
36986pub const PR_EMS_AB_CROSS_CERTIFICATE_CRL: u32 = 2351960322u32;
36987pub const PR_EMS_AB_CROSS_CERTIFICATE_PAIR: u32 = 2149912834u32;
36988pub const PR_EMS_AB_DEFAULT_MESSAGE_FORMAT: u32 = 2352414731u32;
36989pub const PR_EMS_AB_DELEGATE_USER: u32 = 2353594379u32;
36990pub const PR_EMS_AB_DELIVERY_MECHANISM: u32 = 2154692611u32;
36991pub const PR_EMS_AB_DELIVER_AND_REDIRECT: u32 = 2154627083u32;
36992pub const PR_EMS_AB_DELIV_CONT_LENGTH: u32 = 2154430467u32;
36993pub const PR_EMS_AB_DELIV_EITS: u32 = 2154500354u32;
36994pub const PR_EMS_AB_DELIV_EXT_CONT_TYPES: u32 = 2154565890u32;
36995pub const PR_EMS_AB_DELTA_REVOCATION_LIST: u32 = 2353402114u32;
36996pub const PR_EMS_AB_DESCRIPTION: u32 = 2154762270u32;
36997pub const PR_EMS_AB_DESCRIPTION_A: u32 = 2154762270u32;
36998pub const PR_EMS_AB_DESCRIPTION_W: u32 = 2154762271u32;
36999pub const PR_EMS_AB_DESTINATION_INDICATOR: u32 = 2154827806u32;
37000pub const PR_EMS_AB_DESTINATION_INDICATOR_A: u32 = 2154827806u32;
37001pub const PR_EMS_AB_DESTINATION_INDICATOR_W: u32 = 2154827807u32;
37002pub const PR_EMS_AB_DIAGNOSTIC_REG_KEY: u32 = 2154889246u32;
37003pub const PR_EMS_AB_DIAGNOSTIC_REG_KEY_A: u32 = 2154889246u32;
37004pub const PR_EMS_AB_DIAGNOSTIC_REG_KEY_W: u32 = 2154889247u32;
37005pub const PR_EMS_AB_DISABLED_GATEWAY_PROXY: u32 = 2177044510u32;
37006pub const PR_EMS_AB_DISABLED_GATEWAY_PROXY_A: u32 = 2177044510u32;
37007pub const PR_EMS_AB_DISABLED_GATEWAY_PROXY_W: u32 = 2177044511u32;
37008pub const PR_EMS_AB_DISABLE_DEFERRED_COMMIT: u32 = 2351104011u32;
37009pub const PR_EMS_AB_DISPLAY_NAME_OVERRIDE: u32 = 2147549195u32;
37010pub const PR_EMS_AB_DISPLAY_NAME_PRINTABLE: u32 = 973013022u32;
37011pub const PR_EMS_AB_DISPLAY_NAME_PRINTABLE_A: u32 = 973013022u32;
37012pub const PR_EMS_AB_DISPLAY_NAME_PRINTABLE_W: u32 = 973013023u32;
37013pub const PR_EMS_AB_DISPLAY_NAME_SUFFIX: u32 = 2353266718u32;
37014pub const PR_EMS_AB_DISPLAY_NAME_SUFFIX_A: u32 = 2353266718u32;
37015pub const PR_EMS_AB_DISPLAY_NAME_SUFFIX_W: u32 = 2353266719u32;
37016pub const PR_EMS_AB_DL_EXTERNAL_MEMBER_COUNT: u32 = 2363686915u32;
37017pub const PR_EMS_AB_DL_MEMBER_RULE: u32 = 2155090178u32;
37018pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL: u32 = 2154958878u32;
37019pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_A: u32 = 2154958878u32;
37020pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_O: u32 = 2154954765u32;
37021pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_T: u32 = 2154958878u32;
37022pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_W: u32 = 2154958879u32;
37023pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL: u32 = 2155024414u32;
37024pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_A: u32 = 2155024414u32;
37025pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_O: u32 = 2155020301u32;
37026pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_T: u32 = 2155024414u32;
37027pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_W: u32 = 2155024415u32;
37028pub const PR_EMS_AB_DMD_NAME: u32 = 2354446366u32;
37029pub const PR_EMS_AB_DMD_NAME_A: u32 = 2354446366u32;
37030pub const PR_EMS_AB_DMD_NAME_W: u32 = 2354446367u32;
37031pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP: u32 = 2155151390u32;
37032pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_A: u32 = 2155151390u32;
37033pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_O: u32 = 2155151373u32;
37034pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_T: u32 = 2155151390u32;
37035pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_W: u32 = 2155151391u32;
37036pub const PR_EMS_AB_DOMAIN_NAME: u32 = 2155216926u32;
37037pub const PR_EMS_AB_DOMAIN_NAME_A: u32 = 2155216926u32;
37038pub const PR_EMS_AB_DOMAIN_NAME_W: u32 = 2155216927u32;
37039pub const PR_EMS_AB_DO_OAB_VERSION: u32 = 2352611331u32;
37040pub const PR_EMS_AB_DSA_SIGNATURE: u32 = 2155282690u32;
37041pub const PR_EMS_AB_DXA_ADMIN_COPY: u32 = 2155347979u32;
37042pub const PR_EMS_AB_DXA_ADMIN_FORWARD: u32 = 2155413515u32;
37043pub const PR_EMS_AB_DXA_ADMIN_UPDATE: u32 = 2155479043u32;
37044pub const PR_EMS_AB_DXA_APPEND_REQCN: u32 = 2155544587u32;
37045pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST: u32 = 2155614238u32;
37046pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_A: u32 = 2155614238u32;
37047pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL: u32 = 2356547614u32;
37048pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_A: u32 = 2356547614u32;
37049pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_O: u32 = 2356543501u32;
37050pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_T: u32 = 2356547614u32;
37051pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_W: u32 = 2356547615u32;
37052pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED: u32 = 2356219934u32;
37053pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_A: u32 = 2356219934u32;
37054pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_O: u32 = 2356215821u32;
37055pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_T: u32 = 2356219934u32;
37056pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_W: u32 = 2356219935u32;
37057pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_O: u32 = 2155610125u32;
37058pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_T: u32 = 2155614238u32;
37059pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_W: u32 = 2155614239u32;
37060pub const PR_EMS_AB_DXA_CONF_REQ_TIME: u32 = 2155675712u32;
37061pub const PR_EMS_AB_DXA_CONF_SEQ: u32 = 2155741214u32;
37062pub const PR_EMS_AB_DXA_CONF_SEQ_A: u32 = 2155741214u32;
37063pub const PR_EMS_AB_DXA_CONF_SEQ_USN: u32 = 2155806723u32;
37064pub const PR_EMS_AB_DXA_CONF_SEQ_W: u32 = 2155741215u32;
37065pub const PR_EMS_AB_DXA_EXCHANGE_OPTIONS: u32 = 2155872259u32;
37066pub const PR_EMS_AB_DXA_EXPORT_NOW: u32 = 2155937803u32;
37067pub const PR_EMS_AB_DXA_FLAGS: u32 = 2156003331u32;
37068pub const PR_EMS_AB_DXA_IMPORT_NOW: u32 = 2156265483u32;
37069pub const PR_EMS_AB_DXA_IMP_SEQ: u32 = 2156068894u32;
37070pub const PR_EMS_AB_DXA_IMP_SEQ_A: u32 = 2156068894u32;
37071pub const PR_EMS_AB_DXA_IMP_SEQ_TIME: u32 = 2156134464u32;
37072pub const PR_EMS_AB_DXA_IMP_SEQ_USN: u32 = 2156199939u32;
37073pub const PR_EMS_AB_DXA_IMP_SEQ_W: u32 = 2156068895u32;
37074pub const PR_EMS_AB_DXA_IN_TEMPLATE_MAP: u32 = 2156335134u32;
37075pub const PR_EMS_AB_DXA_IN_TEMPLATE_MAP_A: u32 = 2156335134u32;
37076pub const PR_EMS_AB_DXA_IN_TEMPLATE_MAP_W: u32 = 2156335135u32;
37077pub const PR_EMS_AB_DXA_LOCAL_ADMIN: u32 = 2156396574u32;
37078pub const PR_EMS_AB_DXA_LOCAL_ADMIN_A: u32 = 2156396574u32;
37079pub const PR_EMS_AB_DXA_LOCAL_ADMIN_O: u32 = 2156396557u32;
37080pub const PR_EMS_AB_DXA_LOCAL_ADMIN_T: u32 = 2156396574u32;
37081pub const PR_EMS_AB_DXA_LOCAL_ADMIN_W: u32 = 2156396575u32;
37082pub const PR_EMS_AB_DXA_LOGGING_LEVEL: u32 = 2156462083u32;
37083pub const PR_EMS_AB_DXA_NATIVE_ADDRESS_TYPE: u32 = 2156527646u32;
37084pub const PR_EMS_AB_DXA_NATIVE_ADDRESS_TYPE_A: u32 = 2156527646u32;
37085pub const PR_EMS_AB_DXA_NATIVE_ADDRESS_TYPE_W: u32 = 2156527647u32;
37086pub const PR_EMS_AB_DXA_OUT_TEMPLATE_MAP: u32 = 2156597278u32;
37087pub const PR_EMS_AB_DXA_OUT_TEMPLATE_MAP_A: u32 = 2156597278u32;
37088pub const PR_EMS_AB_DXA_OUT_TEMPLATE_MAP_W: u32 = 2156597279u32;
37089pub const PR_EMS_AB_DXA_PASSWORD: u32 = 2156658718u32;
37090pub const PR_EMS_AB_DXA_PASSWORD_A: u32 = 2156658718u32;
37091pub const PR_EMS_AB_DXA_PASSWORD_W: u32 = 2156658719u32;
37092pub const PR_EMS_AB_DXA_PREV_EXCHANGE_OPTIONS: u32 = 2156724227u32;
37093pub const PR_EMS_AB_DXA_PREV_EXPORT_NATIVE_ONLY: u32 = 2156789771u32;
37094pub const PR_EMS_AB_DXA_PREV_IN_EXCHANGE_SENSITIVITY: u32 = 2156855299u32;
37095pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES: u32 = 2156920862u32;
37096pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_A: u32 = 2156920862u32;
37097pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_O: u32 = 2156920845u32;
37098pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_T: u32 = 2156920862u32;
37099pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_W: u32 = 2156920863u32;
37100pub const PR_EMS_AB_DXA_PREV_REPLICATION_SENSITIVITY: u32 = 2156986371u32;
37101pub const PR_EMS_AB_DXA_PREV_TEMPLATE_OPTIONS: u32 = 2157051907u32;
37102pub const PR_EMS_AB_DXA_PREV_TYPES: u32 = 2157117443u32;
37103pub const PR_EMS_AB_DXA_RECIPIENT_CP: u32 = 2157183006u32;
37104pub const PR_EMS_AB_DXA_RECIPIENT_CP_A: u32 = 2157183006u32;
37105pub const PR_EMS_AB_DXA_RECIPIENT_CP_W: u32 = 2157183007u32;
37106pub const PR_EMS_AB_DXA_REMOTE_CLIENT: u32 = 2157248542u32;
37107pub const PR_EMS_AB_DXA_REMOTE_CLIENT_A: u32 = 2157248542u32;
37108pub const PR_EMS_AB_DXA_REMOTE_CLIENT_O: u32 = 2157248525u32;
37109pub const PR_EMS_AB_DXA_REMOTE_CLIENT_T: u32 = 2157248542u32;
37110pub const PR_EMS_AB_DXA_REMOTE_CLIENT_W: u32 = 2157248543u32;
37111pub const PR_EMS_AB_DXA_REQNAME: u32 = 2157510686u32;
37112pub const PR_EMS_AB_DXA_REQNAME_A: u32 = 2157510686u32;
37113pub const PR_EMS_AB_DXA_REQNAME_W: u32 = 2157510687u32;
37114pub const PR_EMS_AB_DXA_REQ_SEQ: u32 = 2157314078u32;
37115pub const PR_EMS_AB_DXA_REQ_SEQ_A: u32 = 2157314078u32;
37116pub const PR_EMS_AB_DXA_REQ_SEQ_TIME: u32 = 2157379648u32;
37117pub const PR_EMS_AB_DXA_REQ_SEQ_USN: u32 = 2157445123u32;
37118pub const PR_EMS_AB_DXA_REQ_SEQ_W: u32 = 2157314079u32;
37119pub const PR_EMS_AB_DXA_SVR_SEQ: u32 = 2157576222u32;
37120pub const PR_EMS_AB_DXA_SVR_SEQ_A: u32 = 2157576222u32;
37121pub const PR_EMS_AB_DXA_SVR_SEQ_TIME: u32 = 2157641792u32;
37122pub const PR_EMS_AB_DXA_SVR_SEQ_USN: u32 = 2157707267u32;
37123pub const PR_EMS_AB_DXA_SVR_SEQ_W: u32 = 2157576223u32;
37124pub const PR_EMS_AB_DXA_TASK: u32 = 2157772803u32;
37125pub const PR_EMS_AB_DXA_TEMPLATE_OPTIONS: u32 = 2157838339u32;
37126pub const PR_EMS_AB_DXA_TEMPLATE_TIMESTAMP: u32 = 2157903936u32;
37127pub const PR_EMS_AB_DXA_TYPES: u32 = 2157969411u32;
37128pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST: u32 = 2158039070u32;
37129pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_A: u32 = 2158039070u32;
37130pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL: u32 = 2356613150u32;
37131pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_A: u32 = 2356613150u32;
37132pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_O: u32 = 2356609037u32;
37133pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_T: u32 = 2356613150u32;
37134pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_W: u32 = 2356613151u32;
37135pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED: u32 = 2356285470u32;
37136pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_A: u32 = 2356285470u32;
37137pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_O: u32 = 2356281357u32;
37138pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_T: u32 = 2356285470u32;
37139pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_W: u32 = 2356285471u32;
37140pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_O: u32 = 2158034957u32;
37141pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_T: u32 = 2158039070u32;
37142pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_W: u32 = 2158039071u32;
37143pub const PR_EMS_AB_EMPLOYEE_NUMBER: u32 = 2355560478u32;
37144pub const PR_EMS_AB_EMPLOYEE_NUMBER_A: u32 = 2355560478u32;
37145pub const PR_EMS_AB_EMPLOYEE_NUMBER_W: u32 = 2355560479u32;
37146pub const PR_EMS_AB_EMPLOYEE_TYPE: u32 = 2355691550u32;
37147pub const PR_EMS_AB_EMPLOYEE_TYPE_A: u32 = 2355691550u32;
37148pub const PR_EMS_AB_EMPLOYEE_TYPE_W: u32 = 2355691551u32;
37149pub const PR_EMS_AB_ENABLED: u32 = 2350972939u32;
37150pub const PR_EMS_AB_ENABLED_AUTHORIZATION_PACKAGES: u32 = 2172915742u32;
37151pub const PR_EMS_AB_ENABLED_AUTHORIZATION_PACKAGES_A: u32 = 2172915742u32;
37152pub const PR_EMS_AB_ENABLED_AUTHORIZATION_PACKAGES_W: u32 = 2172915743u32;
37153pub const PR_EMS_AB_ENABLED_PROTOCOLS: u32 = 2172583939u32;
37154pub const PR_EMS_AB_ENABLED_PROTOCOL_CFG: u32 = 2175270923u32;
37155pub const PR_EMS_AB_ENABLE_COMPATIBILITY: u32 = 2352087051u32;
37156pub const PR_EMS_AB_ENCAPSULATION_METHOD: u32 = 2158100483u32;
37157pub const PR_EMS_AB_ENCRYPT: u32 = 2158166027u32;
37158pub const PR_EMS_AB_ENCRYPT_ALG_LIST_NA: u32 = 2151682078u32;
37159pub const PR_EMS_AB_ENCRYPT_ALG_LIST_NA_A: u32 = 2151682078u32;
37160pub const PR_EMS_AB_ENCRYPT_ALG_LIST_NA_W: u32 = 2151682079u32;
37161pub const PR_EMS_AB_ENCRYPT_ALG_LIST_OTHER: u32 = 2151747614u32;
37162pub const PR_EMS_AB_ENCRYPT_ALG_LIST_OTHER_A: u32 = 2151747614u32;
37163pub const PR_EMS_AB_ENCRYPT_ALG_LIST_OTHER_W: u32 = 2151747615u32;
37164pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_NA: u32 = 2151874590u32;
37165pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_NA_A: u32 = 2151874590u32;
37166pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_NA_W: u32 = 2151874591u32;
37167pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_OTHER: u32 = 2151481374u32;
37168pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_OTHER_A: u32 = 2151481374u32;
37169pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_OTHER_W: u32 = 2151481375u32;
37170pub const PR_EMS_AB_EXPAND_DLS_LOCALLY: u32 = 2158231563u32;
37171pub const PR_EMS_AB_EXPIRATION_TIME: u32 = 2150105152u32;
37172pub const PR_EMS_AB_EXPORT_CONTAINERS: u32 = 2158301214u32;
37173pub const PR_EMS_AB_EXPORT_CONTAINERS_A: u32 = 2158301214u32;
37174pub const PR_EMS_AB_EXPORT_CONTAINERS_O: u32 = 2158297101u32;
37175pub const PR_EMS_AB_EXPORT_CONTAINERS_T: u32 = 2158301214u32;
37176pub const PR_EMS_AB_EXPORT_CONTAINERS_W: u32 = 2158301215u32;
37177pub const PR_EMS_AB_EXPORT_CUSTOM_RECIPIENTS: u32 = 2158362635u32;
37178pub const PR_EMS_AB_EXTENDED_CHARS_ALLOWED: u32 = 2158428171u32;
37179pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_1: u32 = 2150432798u32;
37180pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_10: u32 = 2151022622u32;
37181pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_10_A: u32 = 2151022622u32;
37182pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_10_W: u32 = 2151022623u32;
37183pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_11: u32 = 2354511902u32;
37184pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_11_A: u32 = 2354511902u32;
37185pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_11_W: u32 = 2354511903u32;
37186pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_12: u32 = 2354577438u32;
37187pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_12_A: u32 = 2354577438u32;
37188pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_12_W: u32 = 2354577439u32;
37189pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_13: u32 = 2354642974u32;
37190pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_13_A: u32 = 2354642974u32;
37191pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_13_W: u32 = 2354642975u32;
37192pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_14: u32 = 2355101726u32;
37193pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_14_A: u32 = 2355101726u32;
37194pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_14_W: u32 = 2355101727u32;
37195pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_15: u32 = 2355167262u32;
37196pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_15_A: u32 = 2355167262u32;
37197pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_15_W: u32 = 2355167263u32;
37198pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_1_A: u32 = 2150432798u32;
37199pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_1_W: u32 = 2150432799u32;
37200pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_2: u32 = 2150498334u32;
37201pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_2_A: u32 = 2150498334u32;
37202pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_2_W: u32 = 2150498335u32;
37203pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_3: u32 = 2150563870u32;
37204pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_3_A: u32 = 2150563870u32;
37205pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_3_W: u32 = 2150563871u32;
37206pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_4: u32 = 2150629406u32;
37207pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_4_A: u32 = 2150629406u32;
37208pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_4_W: u32 = 2150629407u32;
37209pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_5: u32 = 2150694942u32;
37210pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_5_A: u32 = 2150694942u32;
37211pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_5_W: u32 = 2150694943u32;
37212pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_6: u32 = 2150760478u32;
37213pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_6_A: u32 = 2150760478u32;
37214pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_6_W: u32 = 2150760479u32;
37215pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_7: u32 = 2150826014u32;
37216pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_7_A: u32 = 2150826014u32;
37217pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_7_W: u32 = 2150826015u32;
37218pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_8: u32 = 2150891550u32;
37219pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_8_A: u32 = 2150891550u32;
37220pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_8_W: u32 = 2150891551u32;
37221pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_9: u32 = 2150957086u32;
37222pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_9_A: u32 = 2150957086u32;
37223pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_9_W: u32 = 2150957087u32;
37224pub const PR_EMS_AB_EXTENSION_DATA: u32 = 2158498050u32;
37225pub const PR_EMS_AB_EXTENSION_NAME: u32 = 2158563358u32;
37226pub const PR_EMS_AB_EXTENSION_NAME_A: u32 = 2158563358u32;
37227pub const PR_EMS_AB_EXTENSION_NAME_INHERITED: u32 = 2158628894u32;
37228pub const PR_EMS_AB_EXTENSION_NAME_INHERITED_A: u32 = 2158628894u32;
37229pub const PR_EMS_AB_EXTENSION_NAME_INHERITED_W: u32 = 2158628895u32;
37230pub const PR_EMS_AB_EXTENSION_NAME_W: u32 = 2158563359u32;
37231pub const PR_EMS_AB_FACSIMILE_TELEPHONE_NUMBER: u32 = 2158694658u32;
37232pub const PR_EMS_AB_FILE_VERSION: u32 = 2158756098u32;
37233pub const PR_EMS_AB_FILTER_LOCAL_ADDRESSES: u32 = 2158821387u32;
37234pub const PR_EMS_AB_FOLDERS_CONTAINER: u32 = 2158886942u32;
37235pub const PR_EMS_AB_FOLDERS_CONTAINER_A: u32 = 2158886942u32;
37236pub const PR_EMS_AB_FOLDERS_CONTAINER_O: u32 = 2158886925u32;
37237pub const PR_EMS_AB_FOLDERS_CONTAINER_T: u32 = 2158886942u32;
37238pub const PR_EMS_AB_FOLDERS_CONTAINER_W: u32 = 2158886943u32;
37239pub const PR_EMS_AB_FOLDER_PATHNAME: u32 = 2147745822u32;
37240pub const PR_EMS_AB_FOLDER_PATHNAME_A: u32 = 2147745822u32;
37241pub const PR_EMS_AB_FOLDER_PATHNAME_W: u32 = 2147745823u32;
37242pub const PR_EMS_AB_FORM_DATA: u32 = 2355429634u32;
37243pub const PR_EMS_AB_FORWARDING_ADDRESS: u32 = 2355363870u32;
37244pub const PR_EMS_AB_FORWARDING_ADDRESS_A: u32 = 2355363870u32;
37245pub const PR_EMS_AB_FORWARDING_ADDRESS_W: u32 = 2355363871u32;
37246pub const PR_EMS_AB_GARBAGE_COLL_PERIOD: u32 = 2158952451u32;
37247pub const PR_EMS_AB_GATEWAY_LOCAL_CRED: u32 = 2159018014u32;
37248pub const PR_EMS_AB_GATEWAY_LOCAL_CRED_A: u32 = 2159018014u32;
37249pub const PR_EMS_AB_GATEWAY_LOCAL_CRED_W: u32 = 2159018015u32;
37250pub const PR_EMS_AB_GATEWAY_LOCAL_DESIG: u32 = 2159083550u32;
37251pub const PR_EMS_AB_GATEWAY_LOCAL_DESIG_A: u32 = 2159083550u32;
37252pub const PR_EMS_AB_GATEWAY_LOCAL_DESIG_W: u32 = 2159083551u32;
37253pub const PR_EMS_AB_GATEWAY_PROXY: u32 = 2159153182u32;
37254pub const PR_EMS_AB_GATEWAY_PROXY_A: u32 = 2159153182u32;
37255pub const PR_EMS_AB_GATEWAY_PROXY_W: u32 = 2159153183u32;
37256pub const PR_EMS_AB_GATEWAY_ROUTING_TREE: u32 = 2159214850u32;
37257pub const PR_EMS_AB_GENERATION_QUALIFIER: u32 = 2354249758u32;
37258pub const PR_EMS_AB_GENERATION_QUALIFIER_A: u32 = 2354249758u32;
37259pub const PR_EMS_AB_GENERATION_QUALIFIER_W: u32 = 2354249759u32;
37260pub const PR_EMS_AB_GROUP_BY_ATTR_1: u32 = 2176253982u32;
37261pub const PR_EMS_AB_GROUP_BY_ATTR_1_A: u32 = 2176253982u32;
37262pub const PR_EMS_AB_GROUP_BY_ATTR_1_W: u32 = 2176253983u32;
37263pub const PR_EMS_AB_GROUP_BY_ATTR_2: u32 = 2176319518u32;
37264pub const PR_EMS_AB_GROUP_BY_ATTR_2_A: u32 = 2176319518u32;
37265pub const PR_EMS_AB_GROUP_BY_ATTR_2_W: u32 = 2176319519u32;
37266pub const PR_EMS_AB_GROUP_BY_ATTR_3: u32 = 2176385054u32;
37267pub const PR_EMS_AB_GROUP_BY_ATTR_3_A: u32 = 2176385054u32;
37268pub const PR_EMS_AB_GROUP_BY_ATTR_3_W: u32 = 2176385055u32;
37269pub const PR_EMS_AB_GROUP_BY_ATTR_4: u32 = 2176450590u32;
37270pub const PR_EMS_AB_GROUP_BY_ATTR_4_A: u32 = 2176450590u32;
37271pub const PR_EMS_AB_GROUP_BY_ATTR_4_W: u32 = 2176450591u32;
37272pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN: u32 = 2350514206u32;
37273pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_A: u32 = 2350514206u32;
37274pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_O: u32 = 2350514189u32;
37275pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_T: u32 = 2350514206u32;
37276pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_W: u32 = 2350514207u32;
37277pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_STR: u32 = 2350448670u32;
37278pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_STR_A: u32 = 2350448670u32;
37279pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_STR_W: u32 = 2350448671u32;
37280pub const PR_EMS_AB_GWART_LAST_MODIFIED: u32 = 2159280192u32;
37281pub const PR_EMS_AB_HAB_CHILD_DEPARTMENTS: u32 = 2358902797u32;
37282pub const PR_EMS_AB_HAB_DEPARTMENT_MEMBERS: u32 = 2358706189u32;
37283pub const PR_EMS_AB_HAB_IS_HIERARCHICAL_GROUP: u32 = 2363293707u32;
37284pub const PR_EMS_AB_HAB_PARENT_DEPARTMENT: u32 = 2358837261u32;
37285pub const PR_EMS_AB_HAB_ROOT_DEPARTMENT: u32 = 2358771725u32;
37286pub const PR_EMS_AB_HAB_SHOW_IN_DEPARTMENTS: u32 = 2358509581u32;
37287pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS: u32 = 2159349790u32;
37288pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_A: u32 = 2159349790u32;
37289pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_O: u32 = 2159345677u32;
37290pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_T: u32 = 2159349790u32;
37291pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_W: u32 = 2159349791u32;
37292pub const PR_EMS_AB_HAS_MASTER_NCS: u32 = 2159415326u32;
37293pub const PR_EMS_AB_HAS_MASTER_NCS_A: u32 = 2159415326u32;
37294pub const PR_EMS_AB_HAS_MASTER_NCS_O: u32 = 2159411213u32;
37295pub const PR_EMS_AB_HAS_MASTER_NCS_T: u32 = 2159415326u32;
37296pub const PR_EMS_AB_HAS_MASTER_NCS_W: u32 = 2159415327u32;
37297pub const PR_EMS_AB_HELP_DATA16: u32 = 2151284994u32;
37298pub const PR_EMS_AB_HELP_DATA32: u32 = 2148532482u32;
37299pub const PR_EMS_AB_HELP_FILE_NAME: u32 = 2151350302u32;
37300pub const PR_EMS_AB_HELP_FILE_NAME_A: u32 = 2151350302u32;
37301pub const PR_EMS_AB_HELP_FILE_NAME_W: u32 = 2151350303u32;
37302pub const PR_EMS_AB_HEURISTICS: u32 = 2159476739u32;
37303pub const PR_EMS_AB_HIDE_DL_MEMBERSHIP: u32 = 2159542283u32;
37304pub const PR_EMS_AB_HIDE_FROM_ADDRESS_BOOK: u32 = 2159607819u32;
37305pub const PR_EMS_AB_HIERARCHY_PATH: u32 = 4294508574u32;
37306pub const PR_EMS_AB_HIERARCHY_PATH_A: u32 = 4294508574u32;
37307pub const PR_EMS_AB_HIERARCHY_PATH_W: u32 = 4294508575u32;
37308pub const PR_EMS_AB_HOME_MDB: u32 = 2147876894u32;
37309pub const PR_EMS_AB_HOME_MDB_A: u32 = 2147876894u32;
37310pub const PR_EMS_AB_HOME_MDB_BL: u32 = 2148798494u32;
37311pub const PR_EMS_AB_HOME_MDB_BL_A: u32 = 2148798494u32;
37312pub const PR_EMS_AB_HOME_MDB_BL_O: u32 = 2148794381u32;
37313pub const PR_EMS_AB_HOME_MDB_BL_T: u32 = 2148798494u32;
37314pub const PR_EMS_AB_HOME_MDB_BL_W: u32 = 2148798495u32;
37315pub const PR_EMS_AB_HOME_MDB_O: u32 = 2147876877u32;
37316pub const PR_EMS_AB_HOME_MDB_T: u32 = 2147876894u32;
37317pub const PR_EMS_AB_HOME_MDB_W: u32 = 2147876895u32;
37318pub const PR_EMS_AB_HOME_MTA: u32 = 2147942430u32;
37319pub const PR_EMS_AB_HOME_MTA_A: u32 = 2147942430u32;
37320pub const PR_EMS_AB_HOME_MTA_O: u32 = 2147942413u32;
37321pub const PR_EMS_AB_HOME_MTA_T: u32 = 2147942430u32;
37322pub const PR_EMS_AB_HOME_MTA_W: u32 = 2147942431u32;
37323pub const PR_EMS_AB_HOME_PUBLIC_SERVER: u32 = 2151612446u32;
37324pub const PR_EMS_AB_HOME_PUBLIC_SERVER_A: u32 = 2151612446u32;
37325pub const PR_EMS_AB_HOME_PUBLIC_SERVER_O: u32 = 2151612429u32;
37326pub const PR_EMS_AB_HOME_PUBLIC_SERVER_T: u32 = 2151612446u32;
37327pub const PR_EMS_AB_HOME_PUBLIC_SERVER_W: u32 = 2151612447u32;
37328pub const PR_EMS_AB_HOUSE_IDENTIFIER: u32 = 2354315294u32;
37329pub const PR_EMS_AB_HOUSE_IDENTIFIER_A: u32 = 2354315294u32;
37330pub const PR_EMS_AB_HOUSE_IDENTIFIER_W: u32 = 2354315295u32;
37331pub const PR_EMS_AB_HTTP_PUB_AB_ATTRIBUTES: u32 = 2175340574u32;
37332pub const PR_EMS_AB_HTTP_PUB_AB_ATTRIBUTES_A: u32 = 2175340574u32;
37333pub const PR_EMS_AB_HTTP_PUB_AB_ATTRIBUTES_W: u32 = 2175340575u32;
37334pub const PR_EMS_AB_HTTP_PUB_GAL: u32 = 2174418955u32;
37335pub const PR_EMS_AB_HTTP_PUB_GAL_LIMIT: u32 = 2174484483u32;
37336pub const PR_EMS_AB_HTTP_PUB_PF: u32 = 2174619906u32;
37337pub const PR_EMS_AB_HTTP_SERVERS: u32 = 2175471646u32;
37338pub const PR_EMS_AB_HTTP_SERVERS_A: u32 = 2175471646u32;
37339pub const PR_EMS_AB_HTTP_SERVERS_W: u32 = 2175471647u32;
37340pub const PR_EMS_AB_IMPORTED_FROM: u32 = 2151809054u32;
37341pub const PR_EMS_AB_IMPORTED_FROM_A: u32 = 2151809054u32;
37342pub const PR_EMS_AB_IMPORTED_FROM_W: u32 = 2151809055u32;
37343pub const PR_EMS_AB_IMPORT_CONTAINER: u32 = 2159673374u32;
37344pub const PR_EMS_AB_IMPORT_CONTAINER_A: u32 = 2159673374u32;
37345pub const PR_EMS_AB_IMPORT_CONTAINER_O: u32 = 2159673357u32;
37346pub const PR_EMS_AB_IMPORT_CONTAINER_T: u32 = 2159673374u32;
37347pub const PR_EMS_AB_IMPORT_CONTAINER_W: u32 = 2159673375u32;
37348pub const PR_EMS_AB_IMPORT_SENSITIVITY: u32 = 2159738883u32;
37349pub const PR_EMS_AB_INBOUND_ACCEPT_ALL: u32 = 2350907403u32;
37350pub const PR_EMS_AB_INBOUND_DN: u32 = 2350776350u32;
37351pub const PR_EMS_AB_INBOUND_DN_A: u32 = 2350776350u32;
37352pub const PR_EMS_AB_INBOUND_DN_O: u32 = 2350776333u32;
37353pub const PR_EMS_AB_INBOUND_DN_T: u32 = 2350776350u32;
37354pub const PR_EMS_AB_INBOUND_DN_W: u32 = 2350776351u32;
37355pub const PR_EMS_AB_INBOUND_HOST: u32 = 2173571102u32;
37356pub const PR_EMS_AB_INBOUND_HOST_A: u32 = 2173571102u32;
37357pub const PR_EMS_AB_INBOUND_HOST_W: u32 = 2173571103u32;
37358pub const PR_EMS_AB_INBOUND_NEWSFEED: u32 = 2173894686u32;
37359pub const PR_EMS_AB_INBOUND_NEWSFEED_A: u32 = 2173894686u32;
37360pub const PR_EMS_AB_INBOUND_NEWSFEED_TYPE: u32 = 2350841867u32;
37361pub const PR_EMS_AB_INBOUND_NEWSFEED_W: u32 = 2173894687u32;
37362pub const PR_EMS_AB_INBOUND_SITES: u32 = 2159808542u32;
37363pub const PR_EMS_AB_INBOUND_SITES_A: u32 = 2159808542u32;
37364pub const PR_EMS_AB_INBOUND_SITES_O: u32 = 2159804429u32;
37365pub const PR_EMS_AB_INBOUND_SITES_T: u32 = 2159808542u32;
37366pub const PR_EMS_AB_INBOUND_SITES_W: u32 = 2159808543u32;
37367pub const PR_EMS_AB_INCOMING_MSG_SIZE_LIMIT: u32 = 2173698051u32;
37368pub const PR_EMS_AB_INCOMING_PASSWORD: u32 = 2175729922u32;
37369pub const PR_EMS_AB_INSADMIN: u32 = 2177171486u32;
37370pub const PR_EMS_AB_INSADMIN_A: u32 = 2177171486u32;
37371pub const PR_EMS_AB_INSADMIN_O: u32 = 2177171469u32;
37372pub const PR_EMS_AB_INSADMIN_T: u32 = 2177171486u32;
37373pub const PR_EMS_AB_INSADMIN_W: u32 = 2177171487u32;
37374pub const PR_EMS_AB_INSTANCE_TYPE: u32 = 2159869955u32;
37375pub const PR_EMS_AB_INTERNATIONAL_ISDN_NUMBER: u32 = 2159939614u32;
37376pub const PR_EMS_AB_INTERNATIONAL_ISDN_NUMBER_A: u32 = 2159939614u32;
37377pub const PR_EMS_AB_INTERNATIONAL_ISDN_NUMBER_W: u32 = 2159939615u32;
37378pub const PR_EMS_AB_INVOCATION_ID: u32 = 2160001282u32;
37379pub const PR_EMS_AB_IS_DELETED: u32 = 2160066571u32;
37380pub const PR_EMS_AB_IS_MASTER: u32 = 4294639627u32;
37381pub const PR_EMS_AB_IS_MEMBER_OF_DL: u32 = 2148007949u32;
37382pub const PR_EMS_AB_IS_MEMBER_OF_DL_A: u32 = 2148012062u32;
37383pub const PR_EMS_AB_IS_MEMBER_OF_DL_O: u32 = 2148007949u32;
37384pub const PR_EMS_AB_IS_MEMBER_OF_DL_T: u32 = 2148012062u32;
37385pub const PR_EMS_AB_IS_MEMBER_OF_DL_W: u32 = 2148012063u32;
37386pub const PR_EMS_AB_IS_SINGLE_VALUED: u32 = 2160132107u32;
37387pub const PR_EMS_AB_KCC_STATUS: u32 = 2160201986u32;
37388pub const PR_EMS_AB_KM_SERVER: u32 = 2148335646u32;
37389pub const PR_EMS_AB_KM_SERVER_A: u32 = 2148335646u32;
37390pub const PR_EMS_AB_KM_SERVER_O: u32 = 2148335629u32;
37391pub const PR_EMS_AB_KM_SERVER_T: u32 = 2148335646u32;
37392pub const PR_EMS_AB_KM_SERVER_W: u32 = 2148335647u32;
37393pub const PR_EMS_AB_KNOWLEDGE_INFORMATION: u32 = 2160267294u32;
37394pub const PR_EMS_AB_KNOWLEDGE_INFORMATION_A: u32 = 2160267294u32;
37395pub const PR_EMS_AB_KNOWLEDGE_INFORMATION_W: u32 = 2160267295u32;
37396pub const PR_EMS_AB_LABELEDURI: u32 = 2354118686u32;
37397pub const PR_EMS_AB_LABELEDURI_A: u32 = 2354118686u32;
37398pub const PR_EMS_AB_LABELEDURI_W: u32 = 2354118687u32;
37399pub const PR_EMS_AB_LANGUAGE: u32 = 2172125187u32;
37400pub const PR_EMS_AB_LANGUAGE_ISO639: u32 = 2355888158u32;
37401pub const PR_EMS_AB_LANGUAGE_ISO639_A: u32 = 2355888158u32;
37402pub const PR_EMS_AB_LANGUAGE_ISO639_W: u32 = 2355888159u32;
37403pub const PR_EMS_AB_LDAP_DISPLAY_NAME: u32 = 2171670558u32;
37404pub const PR_EMS_AB_LDAP_DISPLAY_NAME_A: u32 = 2171670558u32;
37405pub const PR_EMS_AB_LDAP_DISPLAY_NAME_W: u32 = 2171670559u32;
37406pub const PR_EMS_AB_LDAP_SEARCH_CFG: u32 = 2350710787u32;
37407pub const PR_EMS_AB_LINE_WRAP: u32 = 2160328707u32;
37408pub const PR_EMS_AB_LINK_ID: u32 = 2160394243u32;
37409pub const PR_EMS_AB_LIST_PUBLIC_FOLDERS: u32 = 2354053131u32;
37410pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD: u32 = 2160459806u32;
37411pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_A: u32 = 2160459806u32;
37412pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_ADDRESS: u32 = 2160525342u32;
37413pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_ADDRESS_A: u32 = 2160525342u32;
37414pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_ADDRESS_W: u32 = 2160525343u32;
37415pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_W: u32 = 2160459807u32;
37416pub const PR_EMS_AB_LOCAL_INITIAL_TURN: u32 = 2160590859u32;
37417pub const PR_EMS_AB_LOCAL_SCOPE: u32 = 2160660510u32;
37418pub const PR_EMS_AB_LOCAL_SCOPE_A: u32 = 2160660510u32;
37419pub const PR_EMS_AB_LOCAL_SCOPE_O: u32 = 2160656397u32;
37420pub const PR_EMS_AB_LOCAL_SCOPE_T: u32 = 2160660510u32;
37421pub const PR_EMS_AB_LOCAL_SCOPE_W: u32 = 2160660511u32;
37422pub const PR_EMS_AB_LOG_FILENAME: u32 = 2160721950u32;
37423pub const PR_EMS_AB_LOG_FILENAME_A: u32 = 2160721950u32;
37424pub const PR_EMS_AB_LOG_FILENAME_W: u32 = 2160721951u32;
37425pub const PR_EMS_AB_LOG_ROLLOVER_INTERVAL: u32 = 2160787459u32;
37426pub const PR_EMS_AB_MAIL_DROP: u32 = 2355298334u32;
37427pub const PR_EMS_AB_MAIL_DROP_A: u32 = 2355298334u32;
37428pub const PR_EMS_AB_MAIL_DROP_W: u32 = 2355298335u32;
37429pub const PR_EMS_AB_MAINTAIN_AUTOREPLY_HISTORY: u32 = 2160853003u32;
37430pub const PR_EMS_AB_MANAGER: u32 = 2147811341u32;
37431pub const PR_EMS_AB_MANAGER_A: u32 = 2147811358u32;
37432pub const PR_EMS_AB_MANAGER_O: u32 = 2147811341u32;
37433pub const PR_EMS_AB_MANAGER_T: u32 = 2147811358u32;
37434pub const PR_EMS_AB_MANAGER_W: u32 = 2147811359u32;
37435pub const PR_EMS_AB_MAPI_DISPLAY_TYPE: u32 = 2160918531u32;
37436pub const PR_EMS_AB_MAPI_ID: u32 = 2160984067u32;
37437pub const PR_EMS_AB_MAXIMUM_OBJECT_ID: u32 = 2171142402u32;
37438pub const PR_EMS_AB_MDB_BACKOFF_INTERVAL: u32 = 2161049603u32;
37439pub const PR_EMS_AB_MDB_MSG_TIME_OUT_PERIOD: u32 = 2161115139u32;
37440pub const PR_EMS_AB_MDB_OVER_QUOTA_LIMIT: u32 = 2161180675u32;
37441pub const PR_EMS_AB_MDB_STORAGE_QUOTA: u32 = 2161246211u32;
37442pub const PR_EMS_AB_MDB_UNREAD_LIMIT: u32 = 2161311747u32;
37443pub const PR_EMS_AB_MDB_USE_DEFAULTS: u32 = 2161377291u32;
37444pub const PR_EMS_AB_MEMBER: u32 = 2148073485u32;
37445pub const PR_EMS_AB_MEMBER_A: u32 = 2148077598u32;
37446pub const PR_EMS_AB_MEMBER_O: u32 = 2148073485u32;
37447pub const PR_EMS_AB_MEMBER_T: u32 = 2148077598u32;
37448pub const PR_EMS_AB_MEMBER_W: u32 = 2148077599u32;
37449pub const PR_EMS_AB_MESSAGE_TRACKING_ENABLED: u32 = 2161442827u32;
37450pub const PR_EMS_AB_MIME_TYPES: u32 = 2350645506u32;
37451pub const PR_EMS_AB_MODERATED: u32 = 2175533067u32;
37452pub const PR_EMS_AB_MODERATOR: u32 = 2174287902u32;
37453pub const PR_EMS_AB_MODERATOR_A: u32 = 2174287902u32;
37454pub const PR_EMS_AB_MODERATOR_W: u32 = 2174287903u32;
37455pub const PR_EMS_AB_MONITORED_CONFIGURATIONS: u32 = 2161709086u32;
37456pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_A: u32 = 2161709086u32;
37457pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_O: u32 = 2161704973u32;
37458pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_T: u32 = 2161709086u32;
37459pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_W: u32 = 2161709087u32;
37460pub const PR_EMS_AB_MONITORED_SERVERS: u32 = 2161774622u32;
37461pub const PR_EMS_AB_MONITORED_SERVERS_A: u32 = 2161774622u32;
37462pub const PR_EMS_AB_MONITORED_SERVERS_O: u32 = 2161770509u32;
37463pub const PR_EMS_AB_MONITORED_SERVERS_T: u32 = 2161774622u32;
37464pub const PR_EMS_AB_MONITORED_SERVERS_W: u32 = 2161774623u32;
37465pub const PR_EMS_AB_MONITORED_SERVICES: u32 = 2161840158u32;
37466pub const PR_EMS_AB_MONITORED_SERVICES_A: u32 = 2161840158u32;
37467pub const PR_EMS_AB_MONITORED_SERVICES_W: u32 = 2161840159u32;
37468pub const PR_EMS_AB_MONITORING_ALERT_DELAY: u32 = 2161901571u32;
37469pub const PR_EMS_AB_MONITORING_ALERT_UNITS: u32 = 2161967107u32;
37470pub const PR_EMS_AB_MONITORING_AVAILABILITY_STYLE: u32 = 2162032643u32;
37471pub const PR_EMS_AB_MONITORING_AVAILABILITY_WINDOW: u32 = 2162098434u32;
37472pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL: u32 = 2162167838u32;
37473pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_A: u32 = 2162167838u32;
37474pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_O: u32 = 2162163725u32;
37475pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_T: u32 = 2162167838u32;
37476pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_W: u32 = 2162167839u32;
37477pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC: u32 = 2162233374u32;
37478pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_A: u32 = 2162233374u32;
37479pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_O: u32 = 2162229261u32;
37480pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_T: u32 = 2162233374u32;
37481pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_W: u32 = 2162233375u32;
37482pub const PR_EMS_AB_MONITORING_ESCALATION_PROCEDURE: u32 = 2162299138u32;
37483pub const PR_EMS_AB_MONITORING_HOTSITE_POLL_INTERVAL: u32 = 2162360323u32;
37484pub const PR_EMS_AB_MONITORING_HOTSITE_POLL_UNITS: u32 = 2162425859u32;
37485pub const PR_EMS_AB_MONITORING_MAIL_UPDATE_INTERVAL: u32 = 2162491395u32;
37486pub const PR_EMS_AB_MONITORING_MAIL_UPDATE_UNITS: u32 = 2162556931u32;
37487pub const PR_EMS_AB_MONITORING_NORMAL_POLL_INTERVAL: u32 = 2162622467u32;
37488pub const PR_EMS_AB_MONITORING_NORMAL_POLL_UNITS: u32 = 2162688003u32;
37489pub const PR_EMS_AB_MONITORING_RECIPIENTS: u32 = 2162757662u32;
37490pub const PR_EMS_AB_MONITORING_RECIPIENTS_A: u32 = 2162757662u32;
37491pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR: u32 = 2162823198u32;
37492pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_A: u32 = 2162823198u32;
37493pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_O: u32 = 2162819085u32;
37494pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_T: u32 = 2162823198u32;
37495pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_W: u32 = 2162823199u32;
37496pub const PR_EMS_AB_MONITORING_RECIPIENTS_O: u32 = 2162753549u32;
37497pub const PR_EMS_AB_MONITORING_RECIPIENTS_T: u32 = 2162757662u32;
37498pub const PR_EMS_AB_MONITORING_RECIPIENTS_W: u32 = 2162757663u32;
37499pub const PR_EMS_AB_MONITORING_RPC_UPDATE_INTERVAL: u32 = 2162884611u32;
37500pub const PR_EMS_AB_MONITORING_RPC_UPDATE_UNITS: u32 = 2162950147u32;
37501pub const PR_EMS_AB_MONITORING_WARNING_DELAY: u32 = 2163015683u32;
37502pub const PR_EMS_AB_MONITORING_WARNING_UNITS: u32 = 2163081219u32;
37503pub const PR_EMS_AB_MONITOR_CLOCK: u32 = 2161508363u32;
37504pub const PR_EMS_AB_MONITOR_SERVERS: u32 = 2161573899u32;
37505pub const PR_EMS_AB_MONITOR_SERVICES: u32 = 2161639435u32;
37506pub const PR_EMS_AB_MTA_LOCAL_CRED: u32 = 2163146782u32;
37507pub const PR_EMS_AB_MTA_LOCAL_CRED_A: u32 = 2163146782u32;
37508pub const PR_EMS_AB_MTA_LOCAL_CRED_W: u32 = 2163146783u32;
37509pub const PR_EMS_AB_MTA_LOCAL_DESIG: u32 = 2163212318u32;
37510pub const PR_EMS_AB_MTA_LOCAL_DESIG_A: u32 = 2163212318u32;
37511pub const PR_EMS_AB_MTA_LOCAL_DESIG_W: u32 = 2163212319u32;
37512pub const PR_EMS_AB_NETWORK_ADDRESS: u32 = 2171605022u32;
37513pub const PR_EMS_AB_NETWORK_ADDRESS_A: u32 = 2171605022u32;
37514pub const PR_EMS_AB_NETWORK_ADDRESS_W: u32 = 2171605023u32;
37515pub const PR_EMS_AB_NEWSFEED_TYPE: u32 = 2173960195u32;
37516pub const PR_EMS_AB_NEWSGROUP: u32 = 2174222366u32;
37517pub const PR_EMS_AB_NEWSGROUP_A: u32 = 2174222366u32;
37518pub const PR_EMS_AB_NEWSGROUP_LIST: u32 = 2174091522u32;
37519pub const PR_EMS_AB_NEWSGROUP_W: u32 = 2174222367u32;
37520pub const PR_EMS_AB_NNTP_CHARACTER_SET: u32 = 2172452894u32;
37521pub const PR_EMS_AB_NNTP_CHARACTER_SET_A: u32 = 2172452894u32;
37522pub const PR_EMS_AB_NNTP_CHARACTER_SET_W: u32 = 2172452895u32;
37523pub const PR_EMS_AB_NNTP_CONTENT_FORMAT: u32 = 2171994142u32;
37524pub const PR_EMS_AB_NNTP_CONTENT_FORMAT_A: u32 = 2171994142u32;
37525pub const PR_EMS_AB_NNTP_CONTENT_FORMAT_W: u32 = 2171994143u32;
37526pub const PR_EMS_AB_NNTP_DISTRIBUTIONS: u32 = 2174160926u32;
37527pub const PR_EMS_AB_NNTP_DISTRIBUTIONS_A: u32 = 2174160926u32;
37528pub const PR_EMS_AB_NNTP_DISTRIBUTIONS_FLAG: u32 = 2175008779u32;
37529pub const PR_EMS_AB_NNTP_DISTRIBUTIONS_W: u32 = 2174160927u32;
37530pub const PR_EMS_AB_NNTP_NEWSFEEDS: u32 = 2175143966u32;
37531pub const PR_EMS_AB_NNTP_NEWSFEEDS_A: u32 = 2175143966u32;
37532pub const PR_EMS_AB_NNTP_NEWSFEEDS_O: u32 = 2175139853u32;
37533pub const PR_EMS_AB_NNTP_NEWSFEEDS_T: u32 = 2175143966u32;
37534pub const PR_EMS_AB_NNTP_NEWSFEEDS_W: u32 = 2175143967u32;
37535pub const PR_EMS_AB_NT_MACHINE_NAME: u32 = 2163408926u32;
37536pub const PR_EMS_AB_NT_MACHINE_NAME_A: u32 = 2163408926u32;
37537pub const PR_EMS_AB_NT_MACHINE_NAME_W: u32 = 2163408927u32;
37538pub const PR_EMS_AB_NT_SECURITY_DESCRIPTOR: u32 = 2148729090u32;
37539pub const PR_EMS_AB_NUM_OF_OPEN_RETRIES: u32 = 2163474435u32;
37540pub const PR_EMS_AB_NUM_OF_TRANSFER_RETRIES: u32 = 2163539971u32;
37541pub const PR_EMS_AB_N_ADDRESS: u32 = 2163278082u32;
37542pub const PR_EMS_AB_N_ADDRESS_TYPE: u32 = 2163343363u32;
37543pub const PR_EMS_AB_OBJECT_CLASS_CATEGORY: u32 = 2163605507u32;
37544pub const PR_EMS_AB_OBJECT_GUID: u32 = 2355953922u32;
37545pub const PR_EMS_AB_OBJECT_OID: u32 = 4294574338u32;
37546pub const PR_EMS_AB_OBJECT_VERSION: u32 = 2163671043u32;
37547pub const PR_EMS_AB_OBJ_DIST_NAME: u32 = 2151415838u32;
37548pub const PR_EMS_AB_OBJ_DIST_NAME_A: u32 = 2151415838u32;
37549pub const PR_EMS_AB_OBJ_DIST_NAME_O: u32 = 2151415821u32;
37550pub const PR_EMS_AB_OBJ_DIST_NAME_T: u32 = 2151415838u32;
37551pub const PR_EMS_AB_OBJ_DIST_NAME_W: u32 = 2151415839u32;
37552pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS: u32 = 2177306654u32;
37553pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_A: u32 = 2177306654u32;
37554pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_O: u32 = 2177302541u32;
37555pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_T: u32 = 2177306654u32;
37556pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_W: u32 = 2177306655u32;
37557pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS: u32 = 2163740702u32;
37558pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_A: u32 = 2163740702u32;
37559pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_O: u32 = 2163736589u32;
37560pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_T: u32 = 2163740702u32;
37561pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_W: u32 = 2163740703u32;
37562pub const PR_EMS_AB_OFF_LINE_AB_SCHEDULE: u32 = 2163802370u32;
37563pub const PR_EMS_AB_OFF_LINE_AB_SERVER: u32 = 2163867678u32;
37564pub const PR_EMS_AB_OFF_LINE_AB_SERVER_A: u32 = 2163867678u32;
37565pub const PR_EMS_AB_OFF_LINE_AB_SERVER_O: u32 = 2163867661u32;
37566pub const PR_EMS_AB_OFF_LINE_AB_SERVER_T: u32 = 2163867678u32;
37567pub const PR_EMS_AB_OFF_LINE_AB_SERVER_W: u32 = 2163867679u32;
37568pub const PR_EMS_AB_OFF_LINE_AB_STYLE: u32 = 2163933187u32;
37569pub const PR_EMS_AB_OID_TYPE: u32 = 2163998723u32;
37570pub const PR_EMS_AB_OM_OBJECT_CLASS: u32 = 2164064514u32;
37571pub const PR_EMS_AB_OM_SYNTAX: u32 = 2164129795u32;
37572pub const PR_EMS_AB_OOF_REPLY_TO_ORIGINATOR: u32 = 2164195339u32;
37573pub const PR_EMS_AB_OPEN_RETRY_INTERVAL: u32 = 2164260867u32;
37574pub const PR_EMS_AB_ORGANIZATIONAL_UNIT_NAME: u32 = 2164396062u32;
37575pub const PR_EMS_AB_ORGANIZATIONAL_UNIT_NAME_A: u32 = 2164396062u32;
37576pub const PR_EMS_AB_ORGANIZATIONAL_UNIT_NAME_W: u32 = 2164396063u32;
37577pub const PR_EMS_AB_ORGANIZATION_NAME: u32 = 2164330526u32;
37578pub const PR_EMS_AB_ORGANIZATION_NAME_A: u32 = 2164330526u32;
37579pub const PR_EMS_AB_ORGANIZATION_NAME_W: u32 = 2164330527u32;
37580pub const PR_EMS_AB_ORG_UNIT_ROOT_DN: u32 = 2359820318u32;
37581pub const PR_EMS_AB_ORIGINAL_DISPLAY_TABLE: u32 = 2164457730u32;
37582pub const PR_EMS_AB_ORIGINAL_DISPLAY_TABLE_MSDOS: u32 = 2164523266u32;
37583pub const PR_EMS_AB_OTHER_RECIPS: u32 = 4026531853u32;
37584pub const PR_EMS_AB_OUTBOUND_HOST: u32 = 2173501698u32;
37585pub const PR_EMS_AB_OUTBOUND_HOST_TYPE: u32 = 2175795211u32;
37586pub const PR_EMS_AB_OUTBOUND_NEWSFEED: u32 = 2174025758u32;
37587pub const PR_EMS_AB_OUTBOUND_NEWSFEED_A: u32 = 2174025758u32;
37588pub const PR_EMS_AB_OUTBOUND_NEWSFEED_W: u32 = 2174025759u32;
37589pub const PR_EMS_AB_OUTBOUND_SITES: u32 = 2164592670u32;
37590pub const PR_EMS_AB_OUTBOUND_SITES_A: u32 = 2164592670u32;
37591pub const PR_EMS_AB_OUTBOUND_SITES_O: u32 = 2164588557u32;
37592pub const PR_EMS_AB_OUTBOUND_SITES_T: u32 = 2164592670u32;
37593pub const PR_EMS_AB_OUTBOUND_SITES_W: u32 = 2164592671u32;
37594pub const PR_EMS_AB_OUTGOING_MSG_SIZE_LIMIT: u32 = 2173632515u32;
37595pub const PR_EMS_AB_OVERRIDE_NNTP_CONTENT_FORMAT: u32 = 2177237003u32;
37596pub const PR_EMS_AB_OWA_SERVER: u32 = 2355494942u32;
37597pub const PR_EMS_AB_OWA_SERVER_A: u32 = 2355494942u32;
37598pub const PR_EMS_AB_OWA_SERVER_W: u32 = 2355494943u32;
37599pub const PR_EMS_AB_OWNER: u32 = 2148270110u32;
37600pub const PR_EMS_AB_OWNER_A: u32 = 2148270110u32;
37601pub const PR_EMS_AB_OWNER_BL: u32 = 2149847070u32;
37602pub const PR_EMS_AB_OWNER_BL_A: u32 = 2149847070u32;
37603pub const PR_EMS_AB_OWNER_BL_O: u32 = 2149842957u32;
37604pub const PR_EMS_AB_OWNER_BL_T: u32 = 2149847070u32;
37605pub const PR_EMS_AB_OWNER_BL_W: u32 = 2149847071u32;
37606pub const PR_EMS_AB_OWNER_O: u32 = 2148270093u32;
37607pub const PR_EMS_AB_OWNER_T: u32 = 2148270110u32;
37608pub const PR_EMS_AB_OWNER_W: u32 = 2148270111u32;
37609pub const PR_EMS_AB_PARENT_ENTRYID: u32 = 4294705410u32;
37610pub const PR_EMS_AB_PERIOD_REPL_STAGGER: u32 = 2164981763u32;
37611pub const PR_EMS_AB_PERIOD_REP_SYNC_TIMES: u32 = 2164916482u32;
37612pub const PR_EMS_AB_PERSONAL_TITLE: u32 = 2355822622u32;
37613pub const PR_EMS_AB_PERSONAL_TITLE_A: u32 = 2355822622u32;
37614pub const PR_EMS_AB_PERSONAL_TITLE_W: u32 = 2355822623u32;
37615pub const PR_EMS_AB_PER_MSG_DIALOG_DISPLAY_TABLE: u32 = 2164785410u32;
37616pub const PR_EMS_AB_PER_RECIP_DIALOG_DISPLAY_TABLE: u32 = 2164850946u32;
37617pub const PR_EMS_AB_PF_CONTACTS: u32 = 2151157790u32;
37618pub const PR_EMS_AB_PF_CONTACTS_A: u32 = 2151157790u32;
37619pub const PR_EMS_AB_PF_CONTACTS_O: u32 = 2151153677u32;
37620pub const PR_EMS_AB_PF_CONTACTS_T: u32 = 2151157790u32;
37621pub const PR_EMS_AB_PF_CONTACTS_W: u32 = 2151157791u32;
37622pub const PR_EMS_AB_PHONETIC_COMPANY_NAME: u32 = 2358312990u32;
37623pub const PR_EMS_AB_PHONETIC_COMPANY_NAME_A: u32 = 2358312990u32;
37624pub const PR_EMS_AB_PHONETIC_COMPANY_NAME_W: u32 = 2358312991u32;
37625pub const PR_EMS_AB_PHONETIC_DEPARTMENT_NAME: u32 = 2358247454u32;
37626pub const PR_EMS_AB_PHONETIC_DEPARTMENT_NAME_A: u32 = 2358247454u32;
37627pub const PR_EMS_AB_PHONETIC_DEPARTMENT_NAME_W: u32 = 2358247455u32;
37628pub const PR_EMS_AB_PHONETIC_DISPLAY_NAME: u32 = 2358378526u32;
37629pub const PR_EMS_AB_PHONETIC_DISPLAY_NAME_A: u32 = 2358378526u32;
37630pub const PR_EMS_AB_PHONETIC_DISPLAY_NAME_W: u32 = 2358378527u32;
37631pub const PR_EMS_AB_PHONETIC_GIVEN_NAME: u32 = 2358116382u32;
37632pub const PR_EMS_AB_PHONETIC_GIVEN_NAME_A: u32 = 2358116382u32;
37633pub const PR_EMS_AB_PHONETIC_GIVEN_NAME_W: u32 = 2358116383u32;
37634pub const PR_EMS_AB_PHONETIC_SURNAME: u32 = 2358181918u32;
37635pub const PR_EMS_AB_PHONETIC_SURNAME_A: u32 = 2358181918u32;
37636pub const PR_EMS_AB_PHONETIC_SURNAME_W: u32 = 2358181919u32;
37637pub const PR_EMS_AB_POP_CHARACTER_SET: u32 = 2172190750u32;
37638pub const PR_EMS_AB_POP_CHARACTER_SET_A: u32 = 2172190750u32;
37639pub const PR_EMS_AB_POP_CHARACTER_SET_W: u32 = 2172190751u32;
37640pub const PR_EMS_AB_POP_CONTENT_FORMAT: u32 = 2172059678u32;
37641pub const PR_EMS_AB_POP_CONTENT_FORMAT_A: u32 = 2172059678u32;
37642pub const PR_EMS_AB_POP_CONTENT_FORMAT_W: u32 = 2172059679u32;
37643pub const PR_EMS_AB_PORT_NUMBER: u32 = 2176122883u32;
37644pub const PR_EMS_AB_POSTAL_ADDRESS: u32 = 2165051650u32;
37645pub const PR_EMS_AB_PREFERRED_DELIVERY_METHOD: u32 = 2165116931u32;
37646pub const PR_EMS_AB_PRESERVE_INTERNET_CONTENT: u32 = 2351038475u32;
37647pub const PR_EMS_AB_PRMD: u32 = 2165178398u32;
37648pub const PR_EMS_AB_PRMD_A: u32 = 2165178398u32;
37649pub const PR_EMS_AB_PRMD_W: u32 = 2165178399u32;
37650pub const PR_EMS_AB_PROMO_EXPIRATION: u32 = 2176974912u32;
37651pub const PR_EMS_AB_PROTOCOL_SETTINGS: u32 = 2176192542u32;
37652pub const PR_EMS_AB_PROTOCOL_SETTINGS_A: u32 = 2176192542u32;
37653pub const PR_EMS_AB_PROTOCOL_SETTINGS_W: u32 = 2176192543u32;
37654pub const PR_EMS_AB_PROXY_ADDRESSES: u32 = 2148470814u32;
37655pub const PR_EMS_AB_PROXY_ADDRESSES_A: u32 = 2148470814u32;
37656pub const PR_EMS_AB_PROXY_ADDRESSES_W: u32 = 2148470815u32;
37657pub const PR_EMS_AB_PROXY_GENERATION_ENABLED: u32 = 2175860747u32;
37658pub const PR_EMS_AB_PROXY_GENERATOR_DLL: u32 = 2165243934u32;
37659pub const PR_EMS_AB_PROXY_GENERATOR_DLL_A: u32 = 2165243934u32;
37660pub const PR_EMS_AB_PROXY_GENERATOR_DLL_W: u32 = 2165243935u32;
37661pub const PR_EMS_AB_PUBLIC_DELEGATES: u32 = 2148859917u32;
37662pub const PR_EMS_AB_PUBLIC_DELEGATES_A: u32 = 2148864030u32;
37663pub const PR_EMS_AB_PUBLIC_DELEGATES_BL: u32 = 2165313566u32;
37664pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_A: u32 = 2165313566u32;
37665pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_O: u32 = 2165309453u32;
37666pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_T: u32 = 2165313566u32;
37667pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_W: u32 = 2165313567u32;
37668pub const PR_EMS_AB_PUBLIC_DELEGATES_O: u32 = 2148859917u32;
37669pub const PR_EMS_AB_PUBLIC_DELEGATES_T: u32 = 2148864030u32;
37670pub const PR_EMS_AB_PUBLIC_DELEGATES_W: u32 = 2148864031u32;
37671pub const PR_EMS_AB_P_SELECTOR: u32 = 2164654338u32;
37672pub const PR_EMS_AB_P_SELECTOR_INBOUND: u32 = 2164719874u32;
37673pub const PR_EMS_AB_QUOTA_NOTIFICATION_SCHEDULE: u32 = 2165375234u32;
37674pub const PR_EMS_AB_QUOTA_NOTIFICATION_STYLE: u32 = 2165440515u32;
37675pub const PR_EMS_AB_RANGE_LOWER: u32 = 2165506051u32;
37676pub const PR_EMS_AB_RANGE_UPPER: u32 = 2165571587u32;
37677pub const PR_EMS_AB_RAS_ACCOUNT: u32 = 2175598622u32;
37678pub const PR_EMS_AB_RAS_ACCOUNT_A: u32 = 2175598622u32;
37679pub const PR_EMS_AB_RAS_ACCOUNT_W: u32 = 2175598623u32;
37680pub const PR_EMS_AB_RAS_CALLBACK_NUMBER: u32 = 2165637150u32;
37681pub const PR_EMS_AB_RAS_CALLBACK_NUMBER_A: u32 = 2165637150u32;
37682pub const PR_EMS_AB_RAS_CALLBACK_NUMBER_W: u32 = 2165637151u32;
37683pub const PR_EMS_AB_RAS_PASSWORD: u32 = 2175664386u32;
37684pub const PR_EMS_AB_RAS_PHONEBOOK_ENTRY_NAME: u32 = 2165768222u32;
37685pub const PR_EMS_AB_RAS_PHONEBOOK_ENTRY_NAME_A: u32 = 2165768222u32;
37686pub const PR_EMS_AB_RAS_PHONEBOOK_ENTRY_NAME_W: u32 = 2165768223u32;
37687pub const PR_EMS_AB_RAS_PHONE_NUMBER: u32 = 2165702686u32;
37688pub const PR_EMS_AB_RAS_PHONE_NUMBER_A: u32 = 2165702686u32;
37689pub const PR_EMS_AB_RAS_PHONE_NUMBER_W: u32 = 2165702687u32;
37690pub const PR_EMS_AB_RAS_REMOTE_SRVR_NAME: u32 = 2165833758u32;
37691pub const PR_EMS_AB_RAS_REMOTE_SRVR_NAME_A: u32 = 2165833758u32;
37692pub const PR_EMS_AB_RAS_REMOTE_SRVR_NAME_W: u32 = 2165833759u32;
37693pub const PR_EMS_AB_REFERRAL_LIST: u32 = 2174947358u32;
37694pub const PR_EMS_AB_REFERRAL_LIST_A: u32 = 2174947358u32;
37695pub const PR_EMS_AB_REFERRAL_LIST_W: u32 = 2174947359u32;
37696pub const PR_EMS_AB_REGISTERED_ADDRESS: u32 = 2165903618u32;
37697pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD: u32 = 2165964830u32;
37698pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_A: u32 = 2165964830u32;
37699pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_ADDRESS: u32 = 2166030366u32;
37700pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_ADDRESS_A: u32 = 2166030366u32;
37701pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_ADDRESS_W: u32 = 2166030367u32;
37702pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_W: u32 = 2165964831u32;
37703pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER: u32 = 2166095902u32;
37704pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_A: u32 = 2166095902u32;
37705pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_O: u32 = 2166095885u32;
37706pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_T: u32 = 2166095902u32;
37707pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_W: u32 = 2166095903u32;
37708pub const PR_EMS_AB_REMOTE_SITE: u32 = 2166161438u32;
37709pub const PR_EMS_AB_REMOTE_SITE_A: u32 = 2166161438u32;
37710pub const PR_EMS_AB_REMOTE_SITE_O: u32 = 2166161421u32;
37711pub const PR_EMS_AB_REMOTE_SITE_T: u32 = 2166161438u32;
37712pub const PR_EMS_AB_REMOTE_SITE_W: u32 = 2166161439u32;
37713pub const PR_EMS_AB_REPLICATED_OBJECT_VERSION: u32 = 2355232771u32;
37714pub const PR_EMS_AB_REPLICATION_MAIL_MSG_SIZE: u32 = 2171076611u32;
37715pub const PR_EMS_AB_REPLICATION_SENSITIVITY: u32 = 2166226947u32;
37716pub const PR_EMS_AB_REPLICATION_SIGNATURE: u32 = 2356019458u32;
37717pub const PR_EMS_AB_REPLICATION_STAGGER: u32 = 2166292483u32;
37718pub const PR_EMS_AB_REPORTS: u32 = 2148401165u32;
37719pub const PR_EMS_AB_REPORTS_A: u32 = 2148405278u32;
37720pub const PR_EMS_AB_REPORTS_O: u32 = 2148401165u32;
37721pub const PR_EMS_AB_REPORTS_T: u32 = 2148405278u32;
37722pub const PR_EMS_AB_REPORTS_W: u32 = 2148405279u32;
37723pub const PR_EMS_AB_REPORT_TO_ORIGINATOR: u32 = 2166358027u32;
37724pub const PR_EMS_AB_REPORT_TO_OWNER: u32 = 2166423563u32;
37725pub const PR_EMS_AB_REQUIRE_SSL: u32 = 2351235083u32;
37726pub const PR_EMS_AB_REQ_SEQ: u32 = 2166489091u32;
37727pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA: u32 = 2166554654u32;
37728pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_A: u32 = 2166554654u32;
37729pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_O: u32 = 2166554637u32;
37730pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_T: u32 = 2166554654u32;
37731pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_W: u32 = 2166554655u32;
37732pub const PR_EMS_AB_RETURN_EXACT_MSG_SIZE: u32 = 2354184203u32;
37733pub const PR_EMS_AB_RID_SERVER: u32 = 2166620190u32;
37734pub const PR_EMS_AB_RID_SERVER_A: u32 = 2166620190u32;
37735pub const PR_EMS_AB_RID_SERVER_O: u32 = 2166620173u32;
37736pub const PR_EMS_AB_RID_SERVER_T: u32 = 2166620190u32;
37737pub const PR_EMS_AB_RID_SERVER_W: u32 = 2166620191u32;
37738pub const PR_EMS_AB_ROLE_OCCUPANT: u32 = 2166689822u32;
37739pub const PR_EMS_AB_ROLE_OCCUPANT_A: u32 = 2166689822u32;
37740pub const PR_EMS_AB_ROLE_OCCUPANT_O: u32 = 2166685709u32;
37741pub const PR_EMS_AB_ROLE_OCCUPANT_T: u32 = 2166689822u32;
37742pub const PR_EMS_AB_ROLE_OCCUPANT_W: u32 = 2166689823u32;
37743pub const PR_EMS_AB_ROOM_CAPACITY: u32 = 134676483u32;
37744pub const PR_EMS_AB_ROOM_CONTAINERS: u32 = 2358644766u32;
37745pub const PR_EMS_AB_ROOM_CONTAINERS_A: u32 = 2358644766u32;
37746pub const PR_EMS_AB_ROOM_CONTAINERS_W: u32 = 2358644767u32;
37747pub const PR_EMS_AB_ROOM_DESCRIPTION: u32 = 134807582u32;
37748pub const PR_EMS_AB_ROOM_DESCRIPTION_A: u32 = 134807582u32;
37749pub const PR_EMS_AB_ROOM_DESCRIPTION_W: u32 = 134807583u32;
37750pub const PR_EMS_AB_ROOT_NEWSGROUPS_FOLDER_ID: u32 = 2175926530u32;
37751pub const PR_EMS_AB_ROUTING_LIST: u32 = 2166755358u32;
37752pub const PR_EMS_AB_ROUTING_LIST_A: u32 = 2166755358u32;
37753pub const PR_EMS_AB_ROUTING_LIST_W: u32 = 2166755359u32;
37754pub const PR_EMS_AB_RTS_CHECKPOINT_SIZE: u32 = 2166816771u32;
37755pub const PR_EMS_AB_RTS_RECOVERY_TIMEOUT: u32 = 2166882307u32;
37756pub const PR_EMS_AB_RTS_WINDOW_SIZE: u32 = 2166947843u32;
37757pub const PR_EMS_AB_RUNS_ON: u32 = 2167017502u32;
37758pub const PR_EMS_AB_RUNS_ON_A: u32 = 2167017502u32;
37759pub const PR_EMS_AB_RUNS_ON_O: u32 = 2167013389u32;
37760pub const PR_EMS_AB_RUNS_ON_T: u32 = 2167017502u32;
37761pub const PR_EMS_AB_RUNS_ON_W: u32 = 2167017503u32;
37762pub const PR_EMS_AB_SCHEMA_FLAGS: u32 = 2171797507u32;
37763pub const PR_EMS_AB_SCHEMA_VERSION: u32 = 2172391427u32;
37764pub const PR_EMS_AB_SEARCH_FLAGS: u32 = 2167209987u32;
37765pub const PR_EMS_AB_SEARCH_GUIDE: u32 = 2167279874u32;
37766pub const PR_EMS_AB_SECURITY_POLICY: u32 = 2353467650u32;
37767pub const PR_EMS_AB_SECURITY_PROTOCOL: u32 = 2151092482u32;
37768pub const PR_EMS_AB_SEE_ALSO: u32 = 2167345182u32;
37769pub const PR_EMS_AB_SEE_ALSO_A: u32 = 2167345182u32;
37770pub const PR_EMS_AB_SEE_ALSO_O: u32 = 2167341069u32;
37771pub const PR_EMS_AB_SEE_ALSO_T: u32 = 2167345182u32;
37772pub const PR_EMS_AB_SEE_ALSO_W: u32 = 2167345183u32;
37773pub const PR_EMS_AB_SEND_EMAIL_MESSAGE: u32 = 2352021515u32;
37774pub const PR_EMS_AB_SEND_TNEF: u32 = 2173763595u32;
37775pub const PR_EMS_AB_SENIORITY_INDEX: u32 = 2359296003u32;
37776pub const PR_EMS_AB_SERIAL_NUMBER: u32 = 2167410718u32;
37777pub const PR_EMS_AB_SERIAL_NUMBER_A: u32 = 2167410718u32;
37778pub const PR_EMS_AB_SERIAL_NUMBER_W: u32 = 2167410719u32;
37779pub const PR_EMS_AB_SERVER: u32 = 4294836254u32;
37780pub const PR_EMS_AB_SERVER_A: u32 = 4294836254u32;
37781pub const PR_EMS_AB_SERVER_W: u32 = 4294836255u32;
37782pub const PR_EMS_AB_SERVICE_ACTION_FIRST: u32 = 2167472131u32;
37783pub const PR_EMS_AB_SERVICE_ACTION_OTHER: u32 = 2167537667u32;
37784pub const PR_EMS_AB_SERVICE_ACTION_SECOND: u32 = 2167603203u32;
37785pub const PR_EMS_AB_SERVICE_RESTART_DELAY: u32 = 2167668739u32;
37786pub const PR_EMS_AB_SERVICE_RESTART_MESSAGE: u32 = 2167734302u32;
37787pub const PR_EMS_AB_SERVICE_RESTART_MESSAGE_A: u32 = 2167734302u32;
37788pub const PR_EMS_AB_SERVICE_RESTART_MESSAGE_W: u32 = 2167734303u32;
37789pub const PR_EMS_AB_SESSION_DISCONNECT_TIMER: u32 = 2167799811u32;
37790pub const PR_EMS_AB_SITE_AFFINITY: u32 = 2167869470u32;
37791pub const PR_EMS_AB_SITE_AFFINITY_A: u32 = 2167869470u32;
37792pub const PR_EMS_AB_SITE_AFFINITY_W: u32 = 2167869471u32;
37793pub const PR_EMS_AB_SITE_FOLDER_GUID: u32 = 2170945794u32;
37794pub const PR_EMS_AB_SITE_FOLDER_SERVER: u32 = 2171011102u32;
37795pub const PR_EMS_AB_SITE_FOLDER_SERVER_A: u32 = 2171011102u32;
37796pub const PR_EMS_AB_SITE_FOLDER_SERVER_O: u32 = 2171011085u32;
37797pub const PR_EMS_AB_SITE_FOLDER_SERVER_T: u32 = 2171011102u32;
37798pub const PR_EMS_AB_SITE_FOLDER_SERVER_W: u32 = 2171011103u32;
37799pub const PR_EMS_AB_SITE_PROXY_SPACE: u32 = 2167935006u32;
37800pub const PR_EMS_AB_SITE_PROXY_SPACE_A: u32 = 2167935006u32;
37801pub const PR_EMS_AB_SITE_PROXY_SPACE_W: u32 = 2167935007u32;
37802pub const PR_EMS_AB_SMIME_ALG_LIST_NA: u32 = 2352156702u32;
37803pub const PR_EMS_AB_SMIME_ALG_LIST_NA_A: u32 = 2352156702u32;
37804pub const PR_EMS_AB_SMIME_ALG_LIST_NA_W: u32 = 2352156703u32;
37805pub const PR_EMS_AB_SMIME_ALG_LIST_OTHER: u32 = 2352222238u32;
37806pub const PR_EMS_AB_SMIME_ALG_LIST_OTHER_A: u32 = 2352222238u32;
37807pub const PR_EMS_AB_SMIME_ALG_LIST_OTHER_W: u32 = 2352222239u32;
37808pub const PR_EMS_AB_SMIME_ALG_SELECTED_NA: u32 = 2352283678u32;
37809pub const PR_EMS_AB_SMIME_ALG_SELECTED_NA_A: u32 = 2352283678u32;
37810pub const PR_EMS_AB_SMIME_ALG_SELECTED_NA_W: u32 = 2352283679u32;
37811pub const PR_EMS_AB_SMIME_ALG_SELECTED_OTHER: u32 = 2352349214u32;
37812pub const PR_EMS_AB_SMIME_ALG_SELECTED_OTHER_A: u32 = 2352349214u32;
37813pub const PR_EMS_AB_SMIME_ALG_SELECTED_OTHER_W: u32 = 2352349215u32;
37814pub const PR_EMS_AB_SPACE_LAST_COMPUTED: u32 = 2167996480u32;
37815pub const PR_EMS_AB_STREET_ADDRESS: u32 = 2168061982u32;
37816pub const PR_EMS_AB_STREET_ADDRESS_A: u32 = 2168061982u32;
37817pub const PR_EMS_AB_STREET_ADDRESS_W: u32 = 2168061983u32;
37818pub const PR_EMS_AB_SUBMISSION_CONT_LENGTH: u32 = 2168193027u32;
37819pub const PR_EMS_AB_SUB_REFS: u32 = 2168131614u32;
37820pub const PR_EMS_AB_SUB_REFS_A: u32 = 2168131614u32;
37821pub const PR_EMS_AB_SUB_REFS_O: u32 = 2168127501u32;
37822pub const PR_EMS_AB_SUB_REFS_T: u32 = 2168131614u32;
37823pub const PR_EMS_AB_SUB_REFS_W: u32 = 2168131615u32;
37824pub const PR_EMS_AB_SUB_SITE: u32 = 2172321822u32;
37825pub const PR_EMS_AB_SUB_SITE_A: u32 = 2172321822u32;
37826pub const PR_EMS_AB_SUB_SITE_W: u32 = 2172321823u32;
37827pub const PR_EMS_AB_SUPPORTED_ALGORITHMS: u32 = 2354381058u32;
37828pub const PR_EMS_AB_SUPPORTED_APPLICATION_CONTEXT: u32 = 2168262914u32;
37829pub const PR_EMS_AB_SUPPORTING_STACK: u32 = 2168328222u32;
37830pub const PR_EMS_AB_SUPPORTING_STACK_A: u32 = 2168328222u32;
37831pub const PR_EMS_AB_SUPPORTING_STACK_BL: u32 = 2168393758u32;
37832pub const PR_EMS_AB_SUPPORTING_STACK_BL_A: u32 = 2168393758u32;
37833pub const PR_EMS_AB_SUPPORTING_STACK_BL_O: u32 = 2168389645u32;
37834pub const PR_EMS_AB_SUPPORTING_STACK_BL_T: u32 = 2168393758u32;
37835pub const PR_EMS_AB_SUPPORTING_STACK_BL_W: u32 = 2168393759u32;
37836pub const PR_EMS_AB_SUPPORTING_STACK_O: u32 = 2168324109u32;
37837pub const PR_EMS_AB_SUPPORTING_STACK_T: u32 = 2168328222u32;
37838pub const PR_EMS_AB_SUPPORTING_STACK_W: u32 = 2168328223u32;
37839pub const PR_EMS_AB_SUPPORT_SMIME_SIGNATURES: u32 = 2353528843u32;
37840pub const PR_EMS_AB_S_SELECTOR: u32 = 2167079170u32;
37841pub const PR_EMS_AB_S_SELECTOR_INBOUND: u32 = 2167144706u32;
37842pub const PR_EMS_AB_TARGET_ADDRESS: u32 = 2148597790u32;
37843pub const PR_EMS_AB_TARGET_ADDRESS_A: u32 = 2148597790u32;
37844pub const PR_EMS_AB_TARGET_ADDRESS_W: u32 = 2148597791u32;
37845pub const PR_EMS_AB_TARGET_MTAS: u32 = 2168590366u32;
37846pub const PR_EMS_AB_TARGET_MTAS_A: u32 = 2168590366u32;
37847pub const PR_EMS_AB_TARGET_MTAS_W: u32 = 2168590367u32;
37848pub const PR_EMS_AB_TELEPHONE_NUMBER: u32 = 2148667422u32;
37849pub const PR_EMS_AB_TELEPHONE_NUMBER_A: u32 = 2148667422u32;
37850pub const PR_EMS_AB_TELEPHONE_NUMBER_W: u32 = 2148667423u32;
37851pub const PR_EMS_AB_TELEPHONE_PERSONAL_PAGER: u32 = 2355626014u32;
37852pub const PR_EMS_AB_TELEPHONE_PERSONAL_PAGER_A: u32 = 2355626014u32;
37853pub const PR_EMS_AB_TELEPHONE_PERSONAL_PAGER_W: u32 = 2355626015u32;
37854pub const PR_EMS_AB_TELETEX_TERMINAL_IDENTIFIER: u32 = 2168656130u32;
37855pub const PR_EMS_AB_TEMP_ASSOC_THRESHOLD: u32 = 2168717315u32;
37856pub const PR_EMS_AB_TOMBSTONE_LIFETIME: u32 = 2168782851u32;
37857pub const PR_EMS_AB_TRACKING_LOG_PATH_NAME: u32 = 2168848414u32;
37858pub const PR_EMS_AB_TRACKING_LOG_PATH_NAME_A: u32 = 2168848414u32;
37859pub const PR_EMS_AB_TRACKING_LOG_PATH_NAME_W: u32 = 2168848415u32;
37860pub const PR_EMS_AB_TRANSFER_RETRY_INTERVAL: u32 = 2169044995u32;
37861pub const PR_EMS_AB_TRANSFER_TIMEOUT_NON_URGENT: u32 = 2169110531u32;
37862pub const PR_EMS_AB_TRANSFER_TIMEOUT_NORMAL: u32 = 2169176067u32;
37863pub const PR_EMS_AB_TRANSFER_TIMEOUT_URGENT: u32 = 2169241603u32;
37864pub const PR_EMS_AB_TRANSLATION_TABLE_USED: u32 = 2169307139u32;
37865pub const PR_EMS_AB_TRANSPORT_EXPEDITED_DATA: u32 = 2169372683u32;
37866pub const PR_EMS_AB_TRANS_RETRY_MINS: u32 = 2168913923u32;
37867pub const PR_EMS_AB_TRANS_TIMEOUT_MINS: u32 = 2168979459u32;
37868pub const PR_EMS_AB_TRUST_LEVEL: u32 = 2169438211u32;
37869pub const PR_EMS_AB_TURN_REQUEST_THRESHOLD: u32 = 2169503747u32;
37870pub const PR_EMS_AB_TWO_WAY_ALTERNATE_FACILITY: u32 = 2169569291u32;
37871pub const PR_EMS_AB_TYPE: u32 = 2352480286u32;
37872pub const PR_EMS_AB_TYPE_A: u32 = 2352480286u32;
37873pub const PR_EMS_AB_TYPE_W: u32 = 2352480287u32;
37874pub const PR_EMS_AB_T_SELECTOR: u32 = 2168455426u32;
37875pub const PR_EMS_AB_T_SELECTOR_INBOUND: u32 = 2168520962u32;
37876pub const PR_EMS_AB_UNAUTH_ORIG_BL: u32 = 2169638942u32;
37877pub const PR_EMS_AB_UNAUTH_ORIG_BL_A: u32 = 2169638942u32;
37878pub const PR_EMS_AB_UNAUTH_ORIG_BL_O: u32 = 2169634829u32;
37879pub const PR_EMS_AB_UNAUTH_ORIG_BL_T: u32 = 2169638942u32;
37880pub const PR_EMS_AB_UNAUTH_ORIG_BL_W: u32 = 2169638943u32;
37881pub const PR_EMS_AB_UNMERGED_ATTRIBUTES: u32 = 2356089090u32;
37882pub const PR_EMS_AB_USENET_SITE_NAME: u32 = 2173239326u32;
37883pub const PR_EMS_AB_USENET_SITE_NAME_A: u32 = 2173239326u32;
37884pub const PR_EMS_AB_USENET_SITE_NAME_W: u32 = 2173239327u32;
37885pub const PR_EMS_AB_USER_PASSWORD: u32 = 2169704706u32;
37886pub const PR_EMS_AB_USE_SERVER_VALUES: u32 = 2172518411u32;
37887pub const PR_EMS_AB_USE_SITE_VALUES: u32 = 2172846091u32;
37888pub const PR_EMS_AB_USN_CHANGED: u32 = 2150170627u32;
37889pub const PR_EMS_AB_USN_CREATED: u32 = 2169765891u32;
37890pub const PR_EMS_AB_USN_DSA_LAST_OBJ_REMOVED: u32 = 2169831427u32;
37891pub const PR_EMS_AB_USN_INTERSITE: u32 = 2172256259u32;
37892pub const PR_EMS_AB_USN_LAST_OBJ_REM: u32 = 2169896963u32;
37893pub const PR_EMS_AB_USN_SOURCE: u32 = 2169962499u32;
37894pub const PR_EMS_AB_VIEW_CONTAINER_1: u32 = 2176778270u32;
37895pub const PR_EMS_AB_VIEW_CONTAINER_1_A: u32 = 2176778270u32;
37896pub const PR_EMS_AB_VIEW_CONTAINER_1_W: u32 = 2176778271u32;
37897pub const PR_EMS_AB_VIEW_CONTAINER_2: u32 = 2176843806u32;
37898pub const PR_EMS_AB_VIEW_CONTAINER_2_A: u32 = 2176843806u32;
37899pub const PR_EMS_AB_VIEW_CONTAINER_2_W: u32 = 2176843807u32;
37900pub const PR_EMS_AB_VIEW_CONTAINER_3: u32 = 2176909342u32;
37901pub const PR_EMS_AB_VIEW_CONTAINER_3_A: u32 = 2176909342u32;
37902pub const PR_EMS_AB_VIEW_CONTAINER_3_W: u32 = 2176909343u32;
37903pub const PR_EMS_AB_VIEW_DEFINITION: u32 = 2350584066u32;
37904pub const PR_EMS_AB_VIEW_FLAGS: u32 = 2350383107u32;
37905pub const PR_EMS_AB_VIEW_SITE: u32 = 2176712734u32;
37906pub const PR_EMS_AB_VIEW_SITE_A: u32 = 2176712734u32;
37907pub const PR_EMS_AB_VIEW_SITE_W: u32 = 2176712735u32;
37908pub const PR_EMS_AB_VOICE_MAIL_FLAGS: u32 = 2353008898u32;
37909pub const PR_EMS_AB_VOICE_MAIL_GREETINGS: u32 = 2352943134u32;
37910pub const PR_EMS_AB_VOICE_MAIL_GREETINGS_A: u32 = 2352943134u32;
37911pub const PR_EMS_AB_VOICE_MAIL_GREETINGS_W: u32 = 2352943135u32;
37912pub const PR_EMS_AB_VOICE_MAIL_PASSWORD: u32 = 2352807966u32;
37913pub const PR_EMS_AB_VOICE_MAIL_PASSWORD_A: u32 = 2352807966u32;
37914pub const PR_EMS_AB_VOICE_MAIL_PASSWORD_W: u32 = 2352807967u32;
37915pub const PR_EMS_AB_VOICE_MAIL_RECORDED_NAME: u32 = 2352873730u32;
37916pub const PR_EMS_AB_VOICE_MAIL_RECORDING_LENGTH: u32 = 2353205251u32;
37917pub const PR_EMS_AB_VOICE_MAIL_SPEED: u32 = 2353135619u32;
37918pub const PR_EMS_AB_VOICE_MAIL_SYSTEM_GUID: u32 = 2352677122u32;
37919pub const PR_EMS_AB_VOICE_MAIL_USER_ID: u32 = 2352742430u32;
37920pub const PR_EMS_AB_VOICE_MAIL_USER_ID_A: u32 = 2352742430u32;
37921pub const PR_EMS_AB_VOICE_MAIL_USER_ID_W: u32 = 2352742431u32;
37922pub const PR_EMS_AB_VOICE_MAIL_VOLUME: u32 = 2353070083u32;
37923pub const PR_EMS_AB_WWW_HOME_PAGE: u32 = 2171928606u32;
37924pub const PR_EMS_AB_WWW_HOME_PAGE_A: u32 = 2171928606u32;
37925pub const PR_EMS_AB_WWW_HOME_PAGE_W: u32 = 2171928607u32;
37926pub const PR_EMS_AB_X121_ADDRESS: u32 = 2170032158u32;
37927pub const PR_EMS_AB_X121_ADDRESS_A: u32 = 2170032158u32;
37928pub const PR_EMS_AB_X121_ADDRESS_W: u32 = 2170032159u32;
37929pub const PR_EMS_AB_X25_CALL_USER_DATA_INCOMING: u32 = 2170093826u32;
37930pub const PR_EMS_AB_X25_CALL_USER_DATA_OUTGOING: u32 = 2170159362u32;
37931pub const PR_EMS_AB_X25_FACILITIES_DATA_INCOMING: u32 = 2170224898u32;
37932pub const PR_EMS_AB_X25_FACILITIES_DATA_OUTGOING: u32 = 2170290434u32;
37933pub const PR_EMS_AB_X25_LEASED_LINE_PORT: u32 = 2170355970u32;
37934pub const PR_EMS_AB_X25_LEASED_OR_SWITCHED: u32 = 2170421259u32;
37935pub const PR_EMS_AB_X25_REMOTE_MTA_PHONE: u32 = 2170486814u32;
37936pub const PR_EMS_AB_X25_REMOTE_MTA_PHONE_A: u32 = 2170486814u32;
37937pub const PR_EMS_AB_X25_REMOTE_MTA_PHONE_W: u32 = 2170486815u32;
37938pub const PR_EMS_AB_X400_ATTACHMENT_TYPE: u32 = 2170552578u32;
37939pub const PR_EMS_AB_X400_SELECTOR_SYNTAX: u32 = 2170617859u32;
37940pub const PR_EMS_AB_X500_ACCESS_CONTROL_LIST: u32 = 2170683650u32;
37941pub const PR_EMS_AB_X500_NC: u32 = 2174877726u32;
37942pub const PR_EMS_AB_X500_NC_A: u32 = 2174877726u32;
37943pub const PR_EMS_AB_X500_NC_W: u32 = 2174877727u32;
37944pub const PR_EMS_AB_X500_RDN: u32 = 2174812190u32;
37945pub const PR_EMS_AB_X500_RDN_A: u32 = 2174812190u32;
37946pub const PR_EMS_AB_X500_RDN_W: u32 = 2174812191u32;
37947pub const PR_EMS_AB_X509_CERT: u32 = 2355761410u32;
37948pub const PR_EMS_AB_XMIT_TIMEOUT_NON_URGENT: u32 = 2170748931u32;
37949pub const PR_EMS_AB_XMIT_TIMEOUT_NORMAL: u32 = 2170814467u32;
37950pub const PR_EMS_AB_XMIT_TIMEOUT_URGENT: u32 = 2170880003u32;
37951pub const PR_END_DATE: u32 = 6357056u32;
37952pub const PR_ENTRYID: u32 = 268370178u32;
37953pub const PR_EVENTS_ROOT_FOLDER_ENTRYID: u32 = 1719271682u32;
37954pub const PR_EXCESS_STORAGE_USED: u32 = 1073086467u32;
37955pub const PR_EXPIRY_NUMBER: u32 = 1072496643u32;
37956pub const PR_EXPIRY_TIME: u32 = 1376320u32;
37957pub const PR_EXPIRY_UNITS: u32 = 1072562179u32;
37958pub const PR_EXPLICIT_CONVERSION: u32 = 201392131u32;
37959pub const PR_EXTENDED_ACL_DATA: u32 = 1073611010u32;
37960pub const PR_EXTENDED_RULE_ACTIONS: u32 = 244908290u32;
37961pub const PR_EXTENDED_RULE_CONDITION: u32 = 244973826u32;
37962pub const PR_EXTENDED_RULE_MSG_ACTIONS: u32 = 244908290u32;
37963pub const PR_EXTENDED_RULE_MSG_CONDITION: u32 = 244973826u32;
37964pub const PR_EXTENDED_RULE_SIZE_LIMIT: u32 = 245039107u32;
37965pub const PR_FAST_TRANSFER: u32 = 1714356237u32;
37966pub const PR_FAVORITES_DEFAULT_NAME: u32 = 1714749470u32;
37967pub const PR_FAVORITES_DEFAULT_NAME_W: u32 = 1714749471u32;
37968pub const PR_FID_VID: u32 = 1716257026u32;
37969pub const PR_FILE_SIZE: u32 = 1732706307u32;
37970pub const PR_FILE_SIZE_EXTENDED: u32 = 1732706324u32;
37971pub const PR_FILTERING_HOOKS: u32 = 1023934722u32;
37972pub const PR_FINDER_ENTRYID: u32 = 904331522u32;
37973pub const PR_FLAG_STATUS: u32 = 277872643u32;
37974pub const PR_FLAT_URL_NAME: u32 = 1728970782u32;
37975pub const PR_FLAT_URL_NAME_A: u32 = 1728970782u32;
37976pub const PR_FLAT_URL_NAME_W: u32 = 1728970783u32;
37977pub const PR_FOLDER_ASSOCIATED_CONTENTS: u32 = 907018253u32;
37978pub const PR_FOLDER_CHILD_COUNT: u32 = 1714946051u32;
37979pub const PR_FOLDER_DESIGN_FLAGS: u32 = 1071775747u32;
37980pub const PR_FOLDER_FLAGS: u32 = 1722286083u32;
37981pub const PR_FOLDER_PATHNAME: u32 = 1723138078u32;
37982pub const PR_FOLDER_PATHNAME_A: u32 = 1723138078u32;
37983pub const PR_FOLDER_PATHNAME_W: u32 = 1723138079u32;
37984pub const PR_FOLDER_TYPE: u32 = 906035203u32;
37985pub const PR_FORCE_CLIENT_REFRESH: u32 = 1705050123u32;
37986pub const PR_FOREIGN_ID: u32 = 1718026498u32;
37987pub const PR_FOREIGN_REPORT_ID: u32 = 1718092034u32;
37988pub const PR_FOREIGN_SUBJECT_ID: u32 = 1718157570u32;
37989pub const PR_FORM_CATEGORY: u32 = 855900190u32;
37990pub const PR_FORM_CATEGORY_A: u32 = 855900190u32;
37991pub const PR_FORM_CATEGORY_SUB: u32 = 855965726u32;
37992pub const PR_FORM_CATEGORY_SUB_A: u32 = 855965726u32;
37993pub const PR_FORM_CATEGORY_SUB_W: u32 = 855965727u32;
37994pub const PR_FORM_CATEGORY_W: u32 = 855900191u32;
37995pub const PR_FORM_CLSID: u32 = 855769160u32;
37996pub const PR_FORM_CONTACT_NAME: u32 = 855834654u32;
37997pub const PR_FORM_CONTACT_NAME_A: u32 = 855834654u32;
37998pub const PR_FORM_CONTACT_NAME_W: u32 = 855834655u32;
37999pub const PR_FORM_DESIGNER_GUID: u32 = 856227912u32;
38000pub const PR_FORM_DESIGNER_NAME: u32 = 856162334u32;
38001pub const PR_FORM_DESIGNER_NAME_A: u32 = 856162334u32;
38002pub const PR_FORM_DESIGNER_NAME_W: u32 = 856162335u32;
38003pub const PR_FORM_HIDDEN: u32 = 856096779u32;
38004pub const PR_FORM_HOST_MAP: u32 = 856035331u32;
38005pub const PR_FORM_MESSAGE_BEHAVIOR: u32 = 856293379u32;
38006pub const PR_FORM_VERSION: u32 = 855703582u32;
38007pub const PR_FORM_VERSION_A: u32 = 855703582u32;
38008pub const PR_FORM_VERSION_W: u32 = 855703583u32;
38009pub const PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID: u32 = 1713701122u32;
38010pub const PR_FTP_SITE: u32 = 978059294u32;
38011pub const PR_FTP_SITE_A: u32 = 978059294u32;
38012pub const PR_FTP_SITE_W: u32 = 978059295u32;
38013pub const PR_GENDER: u32 = 978124802u32;
38014pub const PR_GENERATION: u32 = 973406238u32;
38015pub const PR_GENERATION_A: u32 = 973406238u32;
38016pub const PR_GENERATION_W: u32 = 973406239u32;
38017pub const PR_GET_PROPS_EXCLUDE_PROP_ID_LIST: u32 = 1719533826u32;
38018pub const PR_GIVEN_NAME: u32 = 973471774u32;
38019pub const PR_GIVEN_NAME_A: u32 = 973471774u32;
38020pub const PR_GIVEN_NAME_W: u32 = 973471775u32;
38021pub const PR_GOVERNMENT_ID_NUMBER: u32 = 973537310u32;
38022pub const PR_GOVERNMENT_ID_NUMBER_A: u32 = 973537310u32;
38023pub const PR_GOVERNMENT_ID_NUMBER_W: u32 = 973537311u32;
38024pub const PR_GW_ADMIN_OPERATIONS: u32 = 1717043203u32;
38025pub const PR_GW_MTSIN_ENTRYID: u32 = 1713897730u32;
38026pub const PR_GW_MTSOUT_ENTRYID: u32 = 1713963266u32;
38027pub const PR_HASATTACH: u32 = 236650507u32;
38028pub const PR_HAS_DAMS: u32 = 1072300043u32;
38029pub const PR_HAS_MODERATOR_RULES: u32 = 1715404811u32;
38030pub const PR_HAS_NAMED_PROPERTIES: u32 = 1716125707u32;
38031pub const PR_HAS_RULES: u32 = 1715077131u32;
38032pub const PR_HEADER_FOLDER_ENTRYID: u32 = 1040843010u32;
38033pub const PR_HIERARCHY_CHANGE_NUM: u32 = 1715339267u32;
38034pub const PR_HIERARCHY_SERVER: u32 = 1714618398u32;
38035pub const PR_HIERARCHY_SYNCHRONIZER: u32 = 1714159629u32;
38036pub const PR_HOBBIES: u32 = 977469470u32;
38037pub const PR_HOBBIES_A: u32 = 977469470u32;
38038pub const PR_HOBBIES_W: u32 = 977469471u32;
38039pub const PR_HOME2_TELEPHONE_NUMBER: u32 = 976158750u32;
38040pub const PR_HOME2_TELEPHONE_NUMBER_A: u32 = 976158750u32;
38041pub const PR_HOME2_TELEPHONE_NUMBER_W: u32 = 976158751u32;
38042pub const PR_HOME_ADDRESS_CITY: u32 = 978911262u32;
38043pub const PR_HOME_ADDRESS_CITY_A: u32 = 978911262u32;
38044pub const PR_HOME_ADDRESS_CITY_W: u32 = 978911263u32;
38045pub const PR_HOME_ADDRESS_COUNTRY: u32 = 978976798u32;
38046pub const PR_HOME_ADDRESS_COUNTRY_A: u32 = 978976798u32;
38047pub const PR_HOME_ADDRESS_COUNTRY_W: u32 = 978976799u32;
38048pub const PR_HOME_ADDRESS_POSTAL_CODE: u32 = 979042334u32;
38049pub const PR_HOME_ADDRESS_POSTAL_CODE_A: u32 = 979042334u32;
38050pub const PR_HOME_ADDRESS_POSTAL_CODE_W: u32 = 979042335u32;
38051pub const PR_HOME_ADDRESS_POST_OFFICE_BOX: u32 = 979238942u32;
38052pub const PR_HOME_ADDRESS_POST_OFFICE_BOX_A: u32 = 979238942u32;
38053pub const PR_HOME_ADDRESS_POST_OFFICE_BOX_W: u32 = 979238943u32;
38054pub const PR_HOME_ADDRESS_STATE_OR_PROVINCE: u32 = 979107870u32;
38055pub const PR_HOME_ADDRESS_STATE_OR_PROVINCE_A: u32 = 979107870u32;
38056pub const PR_HOME_ADDRESS_STATE_OR_PROVINCE_W: u32 = 979107871u32;
38057pub const PR_HOME_ADDRESS_STREET: u32 = 979173406u32;
38058pub const PR_HOME_ADDRESS_STREET_A: u32 = 979173406u32;
38059pub const PR_HOME_ADDRESS_STREET_W: u32 = 979173407u32;
38060pub const PR_HOME_FAX_NUMBER: u32 = 975503390u32;
38061pub const PR_HOME_FAX_NUMBER_A: u32 = 975503390u32;
38062pub const PR_HOME_FAX_NUMBER_W: u32 = 975503391u32;
38063pub const PR_HOME_TELEPHONE_NUMBER: u32 = 973668382u32;
38064pub const PR_HOME_TELEPHONE_NUMBER_A: u32 = 973668382u32;
38065pub const PR_HOME_TELEPHONE_NUMBER_W: u32 = 973668383u32;
38066pub const PR_HTML: u32 = 269680898u32;
38067pub const PR_ICON: u32 = 268239106u32;
38068pub const PR_ICON_INDEX: u32 = 276824067u32;
38069pub const PR_ICS_CHANGE_KEY: u32 = 1716846850u32;
38070pub const PR_IDENTITY_DISPLAY: u32 = 1040187422u32;
38071pub const PR_IDENTITY_DISPLAY_A: u32 = 1040187422u32;
38072pub const PR_IDENTITY_DISPLAY_W: u32 = 1040187423u32;
38073pub const PR_IDENTITY_ENTRYID: u32 = 1040253186u32;
38074pub const PR_IDENTITY_SEARCH_KEY: u32 = 1040515330u32;
38075pub const PR_IMAP_INTERNAL_DATE: u32 = 1710555200u32;
38076pub const PR_IMPLICIT_CONVERSION_PROHIBITED: u32 = 1441803u32;
38077pub const PR_IMPLIED_RESTRICTIONS: u32 = 1719603458u32;
38078pub const PR_IMPORTANCE: u32 = 1507331u32;
38079pub const PR_INBOUND_NEWSFEED_DN: u32 = 1720516638u32;
38080pub const PR_INCOMPLETE_COPY: u32 = 3473419u32;
38081pub const PR_INITIALS: u32 = 973733918u32;
38082pub const PR_INITIALS_A: u32 = 973733918u32;
38083pub const PR_INITIALS_W: u32 = 973733919u32;
38084pub const PR_INITIAL_DETAILS_PANE: u32 = 1057488899u32;
38085pub const PR_INSTANCE_KEY: u32 = 267780354u32;
38086pub const PR_INTERNAL_TRACE_INFO: u32 = 1718223106u32;
38087pub const PR_INTERNET_CHARSET: u32 = 1721368606u32;
38088pub const PR_INTERNET_CONTENT: u32 = 1717108994u32;
38089pub const PR_INTERNET_CONTENT_EA: u32 = 1717108996u32;
38090pub const PR_INTERNET_CONTENT_HANDLE: u32 = 1717108995u32;
38091pub const PR_INTERNET_CPID: u32 = 1071513603u32;
38092pub const PR_INTERNET_MDNS: u32 = 1722089483u32;
38093pub const PR_INTERNET_MESSAGE_ID: u32 = 271908894u32;
38094pub const PR_INTERNET_MESSAGE_ID_A: u32 = 271908894u32;
38095pub const PR_INTERNET_MESSAGE_ID_W: u32 = 271908895u32;
38096pub const PR_INTERNET_NEWSGROUP_NAME: u32 = 1722220574u32;
38097pub const PR_INTERNET_NEWSGROUP_NAME_A: u32 = 1722220574u32;
38098pub const PR_INTERNET_NEWSGROUP_NAME_W: u32 = 1722220575u32;
38099pub const PR_INTERNET_REFERENCES: u32 = 272171038u32;
38100pub const PR_INTERNET_REFERENCES_A: u32 = 272171038u32;
38101pub const PR_INTERNET_REFERENCES_W: u32 = 272171039u32;
38102pub const PR_IN_CONFLICT: u32 = 1718353931u32;
38103pub const PR_IN_REPLY_TO: u32 = 272760862u32;
38104pub const PR_IN_REPLY_TO_A: u32 = 272760862u32;
38105pub const PR_IN_REPLY_TO_W: u32 = 272760863u32;
38106pub const PR_IN_TRANSIT: u32 = 1712848907u32;
38107pub const PR_IPM_APPOINTMENT_ENTRYID: u32 = 919601410u32;
38108pub const PR_IPM_ARCHIVE_ENTRYID: u32 = 905904386u32;
38109pub const PR_IPM_CONTACT_ENTRYID: u32 = 919666946u32;
38110pub const PR_IPM_DAF_ENTRYID: u32 = 1713307906u32;
38111pub const PR_IPM_DRAFTS_ENTRYID: u32 = 920060162u32;
38112pub const PR_IPM_FAVORITES_ENTRYID: u32 = 1714422018u32;
38113pub const PR_IPM_ID: u32 = 1573122u32;
38114pub const PR_IPM_OUTBOX_ENTRYID: u32 = 904003842u32;
38115pub const PR_IPM_OUTBOX_SEARCH_KEY: u32 = 873529602u32;
38116pub const PR_IPM_PUBLIC_FOLDERS_ENTRYID: u32 = 1714487554u32;
38117pub const PR_IPM_RETURN_REQUESTED: u32 = 201457675u32;
38118pub const PR_IPM_SENTMAIL_ENTRYID: u32 = 904134914u32;
38119pub const PR_IPM_SENTMAIL_SEARCH_KEY: u32 = 873660674u32;
38120pub const PR_IPM_SUBTREE_ENTRYID: u32 = 903872770u32;
38121pub const PR_IPM_SUBTREE_SEARCH_KEY: u32 = 873464066u32;
38122pub const PR_IPM_TASK_ENTRYID: u32 = 919863554u32;
38123pub const PR_IPM_WASTEBASKET_ENTRYID: u32 = 904069378u32;
38124pub const PR_IPM_WASTEBASKET_SEARCH_KEY: u32 = 873595138u32;
38125pub const PR_ISDN_NUMBER: u32 = 976027678u32;
38126pub const PR_ISDN_NUMBER_A: u32 = 976027678u32;
38127pub const PR_ISDN_NUMBER_W: u32 = 976027679u32;
38128pub const PR_IS_NEWSGROUP: u32 = 1721171979u32;
38129pub const PR_IS_NEWSGROUP_ANCHOR: u32 = 1721106443u32;
38130pub const PR_ITEM_LEVEL_ACL: u32 = 1025769483u32;
38131pub const PR_KEYWORD: u32 = 973799454u32;
38132pub const PR_KEYWORD_A: u32 = 973799454u32;
38133pub const PR_KEYWORD_W: u32 = 973799455u32;
38134pub const PR_LANGUAGE: u32 = 973864990u32;
38135pub const PR_LANGUAGES: u32 = 3080222u32;
38136pub const PR_LANGUAGES_A: u32 = 3080222u32;
38137pub const PR_LANGUAGES_W: u32 = 3080223u32;
38138pub const PR_LANGUAGE_A: u32 = 973864990u32;
38139pub const PR_LANGUAGE_W: u32 = 973864991u32;
38140pub const PR_LAST_ACCESS_TIME: u32 = 1722351680u32;
38141pub const PR_LAST_FULL_BACKUP: u32 = 1719992384u32;
38142pub const PR_LAST_LOGOFF_TIME: u32 = 1721958464u32;
38143pub const PR_LAST_LOGON_TIME: u32 = 1721892928u32;
38144pub const PR_LAST_MODIFICATION_TIME: u32 = 805830720u32;
38145pub const PR_LAST_MODIFIER_ENTRYID: u32 = 1073414402u32;
38146pub const PR_LAST_MODIFIER_NAME: u32 = 1073348638u32;
38147pub const PR_LAST_MODIFIER_NAME_A: u32 = 1073348638u32;
38148pub const PR_LAST_MODIFIER_NAME_W: u32 = 1073348639u32;
38149pub const PR_LAST_MODIFIER_SID: u32 = 240713986u32;
38150pub const PR_LAST_MODIFIER_SID_AS_XML: u32 = 242024478u32;
38151pub const PR_LATEST_DELIVERY_TIME: u32 = 1638464u32;
38152pub const PR_LOCALE_ID: u32 = 1721827331u32;
38153pub const PR_LOCALITY: u32 = 975634462u32;
38154pub const PR_LOCALITY_A: u32 = 975634462u32;
38155pub const PR_LOCALITY_W: u32 = 975634463u32;
38156pub const PR_LOCAL_COMMIT_TIME: u32 = 1728643136u32;
38157pub const PR_LOCAL_COMMIT_TIME_MAX: u32 = 1728708672u32;
38158pub const PR_LOCATION: u32 = 973930526u32;
38159pub const PR_LOCATION_A: u32 = 973930526u32;
38160pub const PR_LOCATION_W: u32 = 973930527u32;
38161pub const PR_LOCK_BRANCH_ID: u32 = 939524116u32;
38162pub const PR_LOCK_DEPTH: u32 = 940048387u32;
38163pub const PR_LOCK_ENLISTMENT_CONTEXT: u32 = 939786498u32;
38164pub const PR_LOCK_EXPIRY_TIME: u32 = 940179520u32;
38165pub const PR_LOCK_GLID: u32 = 940245250u32;
38166pub const PR_LOCK_NULL_URL_W: u32 = 940310559u32;
38167pub const PR_LOCK_RESOURCE_DID: u32 = 939655188u32;
38168pub const PR_LOCK_RESOURCE_FID: u32 = 939589652u32;
38169pub const PR_LOCK_RESOURCE_VID: u32 = 939720724u32;
38170pub const PR_LOCK_SCOPE: u32 = 939917314u32;
38171pub const PR_LOCK_TIMEOUT: u32 = 940113923u32;
38172pub const PR_LOCK_TRANSIENT_ID: u32 = 939983106u32;
38173pub const PR_LOCK_TYPE: u32 = 939851778u32;
38174pub const PR_LONGTERM_ENTRYID_FROM_TABLE: u32 = 1718616322u32;
38175pub const PR_MAILBOX_OWNER_ENTRYID: u32 = 1713045762u32;
38176pub const PR_MAILBOX_OWNER_NAME: u32 = 1713111070u32;
38177pub const PR_MAILBOX_OWNER_NAME_A: u32 = 1713111070u32;
38178pub const PR_MAILBOX_OWNER_NAME_W: u32 = 1713111071u32;
38179pub const PR_MAIL_PERMISSION: u32 = 973996043u32;
38180pub const PR_MANAGER_NAME: u32 = 978190366u32;
38181pub const PR_MANAGER_NAME_A: u32 = 978190366u32;
38182pub const PR_MANAGER_NAME_W: u32 = 978190367u32;
38183pub const PR_MAPPING_SIGNATURE: u32 = 267911426u32;
38184pub const PR_MAX_CACHED_VIEWS: u32 = 241696771u32;
38185pub const PR_MAX_INDICES: u32 = 241041411u32;
38186pub const PR_MAX_SUBMIT_MESSAGE_SIZE: u32 = 1718419459u32;
38187pub const PR_MDB_PROVIDER: u32 = 873726210u32;
38188pub const PR_MEMBER_ID: u32 = 1718681620u32;
38189pub const PR_MEMBER_NAME: u32 = 1718747166u32;
38190pub const PR_MEMBER_NAME_A: u32 = 1718747166u32;
38191pub const PR_MEMBER_NAME_W: u32 = 1718747167u32;
38192pub const PR_MEMBER_RIGHTS: u32 = 1718812675u32;
38193pub const PR_MERGE_MIDSET_DELETED: u32 = 242876674u32;
38194pub const PR_MESSAGE_ATTACHMENTS: u32 = 236126221u32;
38195pub const PR_MESSAGE_CC_ME: u32 = 5767179u32;
38196pub const PR_MESSAGE_CLASS: u32 = 1703966u32;
38197pub const PR_MESSAGE_CLASS_A: u32 = 1703966u32;
38198pub const PR_MESSAGE_CLASS_W: u32 = 1703967u32;
38199pub const PR_MESSAGE_CODEPAGE: u32 = 1073545219u32;
38200pub const PR_MESSAGE_DELIVERY_ID: u32 = 1769730u32;
38201pub const PR_MESSAGE_DELIVERY_TIME: u32 = 235274304u32;
38202pub const PR_MESSAGE_DOWNLOAD_TIME: u32 = 236453891u32;
38203pub const PR_MESSAGE_FLAGS: u32 = 235339779u32;
38204pub const PR_MESSAGE_LOCALE_ID: u32 = 1072758787u32;
38205pub const PR_MESSAGE_PROCESSED: u32 = 1709703179u32;
38206pub const PR_MESSAGE_RECIPIENTS: u32 = 236060685u32;
38207pub const PR_MESSAGE_RECIP_ME: u32 = 5832715u32;
38208pub const PR_MESSAGE_SECURITY_LABEL: u32 = 1966338u32;
38209pub const PR_MESSAGE_SITE_NAME: u32 = 1709637662u32;
38210pub const PR_MESSAGE_SITE_NAME_A: u32 = 1709637662u32;
38211pub const PR_MESSAGE_SITE_NAME_W: u32 = 1709637663u32;
38212pub const PR_MESSAGE_SIZE: u32 = 235405315u32;
38213pub const PR_MESSAGE_SIZE_EXTENDED: u32 = 235405332u32;
38214pub const PR_MESSAGE_SUBMISSION_ID: u32 = 4653314u32;
38215pub const PR_MESSAGE_TOKEN: u32 = 201523458u32;
38216pub const PR_MESSAGE_TO_ME: u32 = 5701643u32;
38217pub const PR_MHS_COMMON_NAME: u32 = 974061598u32;
38218pub const PR_MHS_COMMON_NAME_A: u32 = 974061598u32;
38219pub const PR_MHS_COMMON_NAME_W: u32 = 974061599u32;
38220pub const PR_MIDDLE_NAME: u32 = 977535006u32;
38221pub const PR_MIDDLE_NAME_A: u32 = 977535006u32;
38222pub const PR_MIDDLE_NAME_W: u32 = 977535007u32;
38223pub const PR_MIME_SIZE: u32 = 1732640771u32;
38224pub const PR_MIME_SIZE_EXTENDED: u32 = 1732640788u32;
38225pub const PR_MINI_ICON: u32 = 268173570u32;
38226pub const PR_MOBILE_TELEPHONE_NUMBER: u32 = 974913566u32;
38227pub const PR_MOBILE_TELEPHONE_NUMBER_A: u32 = 974913566u32;
38228pub const PR_MOBILE_TELEPHONE_NUMBER_W: u32 = 974913567u32;
38229pub const PR_MODIFY_VERSION: u32 = 236584980u32;
38230pub const PR_MOVE_TO_FOLDER_ENTRYID: u32 = 1072955650u32;
38231pub const PR_MOVE_TO_STORE_ENTRYID: u32 = 1072890114u32;
38232pub const PR_MSG_BODY_ID: u32 = 1071448067u32;
38233pub const PR_MSG_EDITOR_FORMAT: u32 = 1493762051u32;
38234pub const PR_MSG_FOLD_TIME: u32 = 1716781120u32;
38235pub const PR_MSG_STATUS: u32 = 236388355u32;
38236pub const PR_MTS_SUBJECT_ID: u32 = 1717764354u32;
38237pub const PR_NATIVE_BODY_INFO: u32 = 269877251u32;
38238pub const PR_NDR_DIAG_CODE: u32 = 201654275u32;
38239pub const PR_NDR_REASON_CODE: u32 = 201588739u32;
38240pub const PR_NEWSFEED_INFO: u32 = 1722155266u32;
38241pub const PR_NEWSGROUP_COMPONENT: u32 = 1722089502u32;
38242pub const PR_NEWSGROUP_ROOT_FOLDER_ENTRYID: u32 = 1720451330u32;
38243pub const PR_NEW_SUBS_GET_AUTO_ADD: u32 = 1709572107u32;
38244pub const PR_NEXT_SEND_ACCT: u32 = 237568031u32;
38245pub const PR_NICKNAME: u32 = 978255902u32;
38246pub const PR_NICKNAME_A: u32 = 978255902u32;
38247pub const PR_NICKNAME_W: u32 = 978255903u32;
38248pub const PR_NNTP_ARTICLE_FOLDER_ENTRYID: u32 = 1720320258u32;
38249pub const PR_NNTP_CONTROL_FOLDER_ENTRYID: u32 = 1720385794u32;
38250pub const PR_NON_IPM_SUBTREE_ENTRYID: u32 = 1713373442u32;
38251pub const PR_NON_RECEIPT_NOTIFICATION_REQUESTED: u32 = 201719819u32;
38252pub const PR_NON_RECEIPT_REASON: u32 = 4063235u32;
38253pub const PR_NON_WIN32_ACL: u32 = 1025703947u32;
38254pub const PR_NON_XMT_SECURITY_ROLE_1: u32 = 243007746u32;
38255pub const PR_NON_XMT_SECURITY_ROLE_1_AS_XML: u32 = 243007518u32;
38256pub const PR_NON_XMT_SECURITY_ROLE_2: u32 = 243073282u32;
38257pub const PR_NON_XMT_SECURITY_ROLE_2_AS_XML: u32 = 243073054u32;
38258pub const PR_NON_XMT_SECURITY_ROLE_3: u32 = 243138818u32;
38259pub const PR_NON_XMT_SECURITY_ROLE_3_AS_XML: u32 = 243138590u32;
38260pub const PR_NON_XMT_SECURITY_ROLE_4: u32 = 243204354u32;
38261pub const PR_NON_XMT_SECURITY_ROLE_4_AS_XML: u32 = 243204126u32;
38262pub const PR_NON_XMT_SECURITY_ROLE_5: u32 = 243269890u32;
38263pub const PR_NON_XMT_SECURITY_ROLE_5_AS_XML: u32 = 243269662u32;
38264pub const PR_NON_XMT_SECURITY_ROLE_6: u32 = 243335426u32;
38265pub const PR_NON_XMT_SECURITY_ROLE_6_AS_XML: u32 = 243335198u32;
38266pub const PR_NON_XMT_SECURITY_ROLE_7: u32 = 243400962u32;
38267pub const PR_NON_XMT_SECURITY_ROLE_7_AS_XML: u32 = 243400734u32;
38268pub const PR_NON_XMT_SECURITY_ROLE_8: u32 = 243466498u32;
38269pub const PR_NON_XMT_SECURITY_ROLE_8_AS_XML: u32 = 243466270u32;
38270pub const PR_NORMALIZED_SUBJECT: u32 = 236781598u32;
38271pub const PR_NORMALIZED_SUBJECT_A: u32 = 236781598u32;
38272pub const PR_NORMALIZED_SUBJECT_W: u32 = 236781599u32;
38273pub const PR_NORMAL_MESSAGE_SIZE: u32 = 1723006979u32;
38274pub const PR_NORMAL_MESSAGE_SIZE_EXTENDED: u32 = 1723006996u32;
38275pub const PR_NORMAL_MSG_W_ATTACH_COUNT: u32 = 1722613763u32;
38276pub const PR_NT_SECURITY_DESCRIPTOR_AS_XML: u32 = 241827870u32;
38277pub const PR_NT_SECURITY_DESCRIPTOR_AS_XML_A: u32 = 241827870u32;
38278pub const PR_NT_SECURITY_DESCRIPTOR_AS_XML_W: u32 = 241827871u32;
38279pub const PR_NT_USER_NAME: u32 = 1721761822u32;
38280pub const PR_NULL: u32 = 1u32;
38281pub const PR_OBJECT_TYPE: u32 = 268304387u32;
38282pub const PR_OBSOLETED_IPMS: u32 = 2031874u32;
38283pub const PR_OFFICE2_TELEPHONE_NUMBER: u32 = 974848030u32;
38284pub const PR_OFFICE2_TELEPHONE_NUMBER_A: u32 = 974848030u32;
38285pub const PR_OFFICE2_TELEPHONE_NUMBER_W: u32 = 974848031u32;
38286pub const PR_OFFICE_LOCATION: u32 = 974716958u32;
38287pub const PR_OFFICE_LOCATION_A: u32 = 974716958u32;
38288pub const PR_OFFICE_LOCATION_W: u32 = 974716959u32;
38289pub const PR_OFFICE_TELEPHONE_NUMBER: u32 = 973602846u32;
38290pub const PR_OFFICE_TELEPHONE_NUMBER_A: u32 = 973602846u32;
38291pub const PR_OFFICE_TELEPHONE_NUMBER_W: u32 = 973602847u32;
38292pub const PR_OFFLINE_ADDRBOOK_ENTRYID: u32 = 1713570050u32;
38293pub const PR_OFFLINE_FLAGS: u32 = 1715273731u32;
38294pub const PR_OFFLINE_MESSAGE_ENTRYID: u32 = 1713832194u32;
38295pub const PR_OLDEST_DELETED_ON: u32 = 1715601472u32;
38296pub const PR_OOF_STATE: u32 = 1713176587u32;
38297pub const PR_ORGANIZATIONAL_ID_NUMBER: u32 = 974127134u32;
38298pub const PR_ORGANIZATIONAL_ID_NUMBER_A: u32 = 974127134u32;
38299pub const PR_ORGANIZATIONAL_ID_NUMBER_W: u32 = 974127135u32;
38300pub const PR_ORIGINALLY_INTENDED_RECIPIENT_NAME: u32 = 2097410u32;
38301pub const PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE: u32 = 8060958u32;
38302pub const PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_A: u32 = 8060958u32;
38303pub const PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_W: u32 = 8060959u32;
38304pub const PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS: u32 = 8126494u32;
38305pub const PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_A: u32 = 8126494u32;
38306pub const PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_W: u32 = 8126495u32;
38307pub const PR_ORIGINALLY_INTENDED_RECIP_ENTRYID: u32 = 269615362u32;
38308pub const PR_ORIGINAL_AUTHOR_ADDRTYPE: u32 = 7929886u32;
38309pub const PR_ORIGINAL_AUTHOR_ADDRTYPE_A: u32 = 7929886u32;
38310pub const PR_ORIGINAL_AUTHOR_ADDRTYPE_W: u32 = 7929887u32;
38311pub const PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS: u32 = 7995422u32;
38312pub const PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_A: u32 = 7995422u32;
38313pub const PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_W: u32 = 7995423u32;
38314pub const PR_ORIGINAL_AUTHOR_ENTRYID: u32 = 4980994u32;
38315pub const PR_ORIGINAL_AUTHOR_NAME: u32 = 5046302u32;
38316pub const PR_ORIGINAL_AUTHOR_NAME_A: u32 = 5046302u32;
38317pub const PR_ORIGINAL_AUTHOR_NAME_W: u32 = 5046303u32;
38318pub const PR_ORIGINAL_AUTHOR_SEARCH_KEY: u32 = 5636354u32;
38319pub const PR_ORIGINAL_AUTHOR_SID: u32 = 240451842u32;
38320pub const PR_ORIGINAL_AUTHOR_SID_AS_XML: u32 = 242614302u32;
38321pub const PR_ORIGINAL_DELIVERY_TIME: u32 = 5570624u32;
38322pub const PR_ORIGINAL_DISPLAY_BCC: u32 = 7471134u32;
38323pub const PR_ORIGINAL_DISPLAY_BCC_A: u32 = 7471134u32;
38324pub const PR_ORIGINAL_DISPLAY_BCC_W: u32 = 7471135u32;
38325pub const PR_ORIGINAL_DISPLAY_CC: u32 = 7536670u32;
38326pub const PR_ORIGINAL_DISPLAY_CC_A: u32 = 7536670u32;
38327pub const PR_ORIGINAL_DISPLAY_CC_W: u32 = 7536671u32;
38328pub const PR_ORIGINAL_DISPLAY_NAME: u32 = 974323742u32;
38329pub const PR_ORIGINAL_DISPLAY_NAME_A: u32 = 974323742u32;
38330pub const PR_ORIGINAL_DISPLAY_NAME_W: u32 = 974323743u32;
38331pub const PR_ORIGINAL_DISPLAY_TO: u32 = 7602206u32;
38332pub const PR_ORIGINAL_DISPLAY_TO_A: u32 = 7602206u32;
38333pub const PR_ORIGINAL_DISPLAY_TO_W: u32 = 7602207u32;
38334pub const PR_ORIGINAL_EITS: u32 = 2162946u32;
38335pub const PR_ORIGINAL_ENTRYID: u32 = 974258434u32;
38336pub const PR_ORIGINAL_SEARCH_KEY: u32 = 974389506u32;
38337pub const PR_ORIGINAL_SENDER_ADDRTYPE: u32 = 6684702u32;
38338pub const PR_ORIGINAL_SENDER_ADDRTYPE_A: u32 = 6684702u32;
38339pub const PR_ORIGINAL_SENDER_ADDRTYPE_W: u32 = 6684703u32;
38340pub const PR_ORIGINAL_SENDER_EMAIL_ADDRESS: u32 = 6750238u32;
38341pub const PR_ORIGINAL_SENDER_EMAIL_ADDRESS_A: u32 = 6750238u32;
38342pub const PR_ORIGINAL_SENDER_EMAIL_ADDRESS_W: u32 = 6750239u32;
38343pub const PR_ORIGINAL_SENDER_ENTRYID: u32 = 5964034u32;
38344pub const PR_ORIGINAL_SENDER_NAME: u32 = 5898270u32;
38345pub const PR_ORIGINAL_SENDER_NAME_A: u32 = 5898270u32;
38346pub const PR_ORIGINAL_SENDER_NAME_W: u32 = 5898271u32;
38347pub const PR_ORIGINAL_SENDER_SEARCH_KEY: u32 = 6029570u32;
38348pub const PR_ORIGINAL_SENDER_SID: u32 = 240058626u32;
38349pub const PR_ORIGINAL_SENDER_SID_AS_XML: u32 = 242221086u32;
38350pub const PR_ORIGINAL_SENSITIVITY: u32 = 3014659u32;
38351pub const PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE: u32 = 6815774u32;
38352pub const PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_A: u32 = 6815774u32;
38353pub const PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_W: u32 = 6815775u32;
38354pub const PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS: u32 = 6881310u32;
38355pub const PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_A: u32 = 6881310u32;
38356pub const PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_W: u32 = 6881311u32;
38357pub const PR_ORIGINAL_SENT_REPRESENTING_ENTRYID: u32 = 6160642u32;
38358pub const PR_ORIGINAL_SENT_REPRESENTING_NAME: u32 = 6094878u32;
38359pub const PR_ORIGINAL_SENT_REPRESENTING_NAME_A: u32 = 6094878u32;
38360pub const PR_ORIGINAL_SENT_REPRESENTING_NAME_W: u32 = 6094879u32;
38361pub const PR_ORIGINAL_SENT_REPRESENTING_SEARCH_KEY: u32 = 6226178u32;
38362pub const PR_ORIGINAL_SENT_REPRESENTING_SID: u32 = 240124162u32;
38363pub const PR_ORIGINAL_SENT_REPRESENTING_SID_AS_XML: u32 = 242286622u32;
38364pub const PR_ORIGINAL_SUBJECT: u32 = 4784158u32;
38365pub const PR_ORIGINAL_SUBJECT_A: u32 = 4784158u32;
38366pub const PR_ORIGINAL_SUBJECT_W: u32 = 4784159u32;
38367pub const PR_ORIGINAL_SUBMIT_TIME: u32 = 5111872u32;
38368pub const PR_ORIGINATING_MTA_CERTIFICATE: u32 = 237306114u32;
38369pub const PR_ORIGINATOR_ADDR: u32 = 1717305374u32;
38370pub const PR_ORIGINATOR_ADDRTYPE: u32 = 1717370910u32;
38371pub const PR_ORIGINATOR_AND_DL_EXPANSION_HISTORY: u32 = 268566786u32;
38372pub const PR_ORIGINATOR_CERTIFICATE: u32 = 2228482u32;
38373pub const PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED: u32 = 2293771u32;
38374pub const PR_ORIGINATOR_ENTRYID: u32 = 1717436674u32;
38375pub const PR_ORIGINATOR_NAME: u32 = 1717239838u32;
38376pub const PR_ORIGINATOR_NON_DELIVERY_REPORT_REQUESTED: u32 = 201850891u32;
38377pub const PR_ORIGINATOR_REQUESTED_ALTERNATE_RECIPIENT: u32 = 201916674u32;
38378pub const PR_ORIGINATOR_RETURN_ADDRESS: u32 = 2359554u32;
38379pub const PR_ORIGINATOR_SID: u32 = 240320770u32;
38380pub const PR_ORIGINATOR_SID_AS_XML: u32 = 242483230u32;
38381pub const PR_ORIGIN_CHECK: u32 = 2556162u32;
38382pub const PR_ORIGIN_ID: u32 = 1716322562u32;
38383pub const PR_ORIG_MESSAGE_CLASS: u32 = 4915230u32;
38384pub const PR_ORIG_MESSAGE_CLASS_A: u32 = 4915230u32;
38385pub const PR_ORIG_MESSAGE_CLASS_W: u32 = 4915231u32;
38386pub const PR_OST_ENCRYPTION: u32 = 1728184323u32;
38387pub const PR_OTHER_ADDRESS_CITY: u32 = 979304478u32;
38388pub const PR_OTHER_ADDRESS_CITY_A: u32 = 979304478u32;
38389pub const PR_OTHER_ADDRESS_CITY_W: u32 = 979304479u32;
38390pub const PR_OTHER_ADDRESS_COUNTRY: u32 = 979370014u32;
38391pub const PR_OTHER_ADDRESS_COUNTRY_A: u32 = 979370014u32;
38392pub const PR_OTHER_ADDRESS_COUNTRY_W: u32 = 979370015u32;
38393pub const PR_OTHER_ADDRESS_POSTAL_CODE: u32 = 979435550u32;
38394pub const PR_OTHER_ADDRESS_POSTAL_CODE_A: u32 = 979435550u32;
38395pub const PR_OTHER_ADDRESS_POSTAL_CODE_W: u32 = 979435551u32;
38396pub const PR_OTHER_ADDRESS_POST_OFFICE_BOX: u32 = 979632158u32;
38397pub const PR_OTHER_ADDRESS_POST_OFFICE_BOX_A: u32 = 979632158u32;
38398pub const PR_OTHER_ADDRESS_POST_OFFICE_BOX_W: u32 = 979632159u32;
38399pub const PR_OTHER_ADDRESS_STATE_OR_PROVINCE: u32 = 979501086u32;
38400pub const PR_OTHER_ADDRESS_STATE_OR_PROVINCE_A: u32 = 979501086u32;
38401pub const PR_OTHER_ADDRESS_STATE_OR_PROVINCE_W: u32 = 979501087u32;
38402pub const PR_OTHER_ADDRESS_STREET: u32 = 979566622u32;
38403pub const PR_OTHER_ADDRESS_STREET_A: u32 = 979566622u32;
38404pub const PR_OTHER_ADDRESS_STREET_W: u32 = 979566623u32;
38405pub const PR_OTHER_TELEPHONE_NUMBER: u32 = 975110174u32;
38406pub const PR_OTHER_TELEPHONE_NUMBER_A: u32 = 975110174u32;
38407pub const PR_OTHER_TELEPHONE_NUMBER_W: u32 = 975110175u32;
38408pub const PR_OUTBOUND_NEWSFEED_DN: u32 = 1720582174u32;
38409pub const PR_OVERALL_AGE_LIMIT: u32 = 1721303043u32;
38410pub const PR_OVERALL_MSG_AGE_LIMIT: u32 = 1720909827u32;
38411pub const PR_OWNER_APPT_ID: u32 = 6422531u32;
38412pub const PR_OWNER_COUNT: u32 = 1723203587u32;
38413pub const PR_OWN_STORE_ENTRYID: u32 = 1040580866u32;
38414pub const PR_P1_CONTENT: u32 = 285212930u32;
38415pub const PR_P1_CONTENT_TYPE: u32 = 285278466u32;
38416pub const PR_PAGER_TELEPHONE_NUMBER: u32 = 975241246u32;
38417pub const PR_PAGER_TELEPHONE_NUMBER_A: u32 = 975241246u32;
38418pub const PR_PAGER_TELEPHONE_NUMBER_W: u32 = 975241247u32;
38419pub const PR_PARENT_DISPLAY: u32 = 235208734u32;
38420pub const PR_PARENT_DISPLAY_A: u32 = 235208734u32;
38421pub const PR_PARENT_DISPLAY_W: u32 = 235208735u32;
38422pub const PR_PARENT_ENTRYID: u32 = 235471106u32;
38423pub const PR_PARENT_KEY: u32 = 2425090u32;
38424pub const PR_PARENT_SOURCE_KEY: u32 = 1709244674u32;
38425pub const PR_PARENT_URL_NAME: u32 = 1728905246u32;
38426pub const PR_PARENT_URL_NAME_A: u32 = 1728905246u32;
38427pub const PR_PARENT_URL_NAME_W: u32 = 1728905247u32;
38428pub const PR_PERSONAL_HOME_PAGE: u32 = 978321438u32;
38429pub const PR_PERSONAL_HOME_PAGE_A: u32 = 978321438u32;
38430pub const PR_PERSONAL_HOME_PAGE_W: u32 = 978321439u32;
38431pub const PR_PF_DISALLOW_MDB_WIDE_EXPIRY: u32 = 1730347019u32;
38432pub const PR_PF_MSG_SIZE_LIMIT: u32 = 1730281492u32;
38433pub const PR_PF_OVER_HARD_QUOTA_LIMIT: u32 = 1730215956u32;
38434pub const PR_PHYSICAL_DELIVERY_BUREAU_FAX_DELIVERY: u32 = 201981963u32;
38435pub const PR_PHYSICAL_DELIVERY_MODE: u32 = 202047491u32;
38436pub const PR_PHYSICAL_DELIVERY_REPORT_REQUEST: u32 = 202113027u32;
38437pub const PR_PHYSICAL_FORWARDING_ADDRESS: u32 = 202178818u32;
38438pub const PR_PHYSICAL_FORWARDING_ADDRESS_REQUESTED: u32 = 202244107u32;
38439pub const PR_PHYSICAL_FORWARDING_PROHIBITED: u32 = 202309643u32;
38440pub const PR_PHYSICAL_RENDITION_ATTRIBUTES: u32 = 202375426u32;
38441pub const PR_POLICY_TAG: u32 = 806945026u32;
38442pub const PR_POSTAL_ADDRESS: u32 = 974454814u32;
38443pub const PR_POSTAL_ADDRESS_A: u32 = 974454814u32;
38444pub const PR_POSTAL_ADDRESS_W: u32 = 974454815u32;
38445pub const PR_POSTAL_CODE: u32 = 975831070u32;
38446pub const PR_POSTAL_CODE_A: u32 = 975831070u32;
38447pub const PR_POSTAL_CODE_W: u32 = 975831071u32;
38448pub const PR_POST_OFFICE_BOX: u32 = 975896606u32;
38449pub const PR_POST_OFFICE_BOX_A: u32 = 975896606u32;
38450pub const PR_POST_OFFICE_BOX_W: u32 = 975896607u32;
38451pub const PR_PREDECESSOR_CHANGE_LIST: u32 = 1709375746u32;
38452pub const PR_PREFERRED_BY_NAME: u32 = 977731614u32;
38453pub const PR_PREFERRED_BY_NAME_A: u32 = 977731614u32;
38454pub const PR_PREFERRED_BY_NAME_W: u32 = 977731615u32;
38455pub const PR_PREPROCESS: u32 = 237109259u32;
38456pub const PR_PREVENT_MSG_CREATE: u32 = 1710489611u32;
38457pub const PR_PREVIEW: u32 = 1071185950u32;
38458pub const PR_PREVIEW_A: u32 = 1071185950u32;
38459pub const PR_PREVIEW_UNREAD: u32 = 1071120414u32;
38460pub const PR_PREVIEW_UNREAD_A: u32 = 1071120414u32;
38461pub const PR_PREVIEW_UNREAD_W: u32 = 1071120415u32;
38462pub const PR_PREVIEW_W: u32 = 1071185951u32;
38463pub const PR_PRIMARY_CAPABILITY: u32 = 956563714u32;
38464pub const PR_PRIMARY_FAX_NUMBER: u32 = 975372318u32;
38465pub const PR_PRIMARY_FAX_NUMBER_A: u32 = 975372318u32;
38466pub const PR_PRIMARY_FAX_NUMBER_W: u32 = 975372319u32;
38467pub const PR_PRIMARY_SEND_ACCT: u32 = 237502495u32;
38468pub const PR_PRIMARY_TELEPHONE_NUMBER: u32 = 974782494u32;
38469pub const PR_PRIMARY_TELEPHONE_NUMBER_A: u32 = 974782494u32;
38470pub const PR_PRIMARY_TELEPHONE_NUMBER_W: u32 = 974782495u32;
38471pub const PR_PRIORITY: u32 = 2490371u32;
38472pub const PR_PROFESSION: u32 = 977666078u32;
38473pub const PR_PROFESSION_A: u32 = 977666078u32;
38474pub const PR_PROFESSION_W: u32 = 977666079u32;
38475pub const PR_PROFILE_ABP_ALLOW_RECONNECT: u32 = 1715011587u32;
38476pub const PR_PROFILE_ABP_MTHREAD_TIMEOUT_SECS: u32 = 1715077123u32;
38477pub const PR_PROFILE_AB_FILES_PATH: u32 = 1712193566u32;
38478pub const PR_PROFILE_AB_FILES_PATH_W: u32 = 1712193567u32;
38479pub const PR_PROFILE_ADDR_INFO: u32 = 1720123650u32;
38480pub const PR_PROFILE_ALLPUB_COMMENT: u32 = 1712783390u32;
38481pub const PR_PROFILE_ALLPUB_COMMENT_W: u32 = 1712783391u32;
38482pub const PR_PROFILE_ALLPUB_DISPLAY_NAME: u32 = 1712717854u32;
38483pub const PR_PROFILE_ALLPUB_DISPLAY_NAME_W: u32 = 1712717855u32;
38484pub const PR_PROFILE_ALTERNATE_STORE_TYPE_W: u32 = 1708130335u32;
38485pub const PR_PROFILE_AUTH_PACKAGE: u32 = 1712914435u32;
38486pub const PR_PROFILE_BINDING_ORDER: u32 = 1711865886u32;
38487pub const PR_PROFILE_CONFIG_FLAGS: u32 = 1711341571u32;
38488pub const PR_PROFILE_CONNECT_FLAGS: u32 = 1711538179u32;
38489pub const PR_PROFILE_FAVFLD_COMMENT: u32 = 1712652318u32;
38490pub const PR_PROFILE_FAVFLD_COMMENT_W: u32 = 1712652319u32;
38491pub const PR_PROFILE_FAVFLD_DISPLAY_NAME: u32 = 1712259102u32;
38492pub const PR_PROFILE_FAVFLD_DISPLAY_NAME_W: u32 = 1712259103u32;
38493pub const PR_PROFILE_HOME_SERVER: u32 = 1711407134u32;
38494pub const PR_PROFILE_HOME_SERVER_ADDRS: u32 = 1712525342u32;
38495pub const PR_PROFILE_HOME_SERVER_DN: u32 = 1712455710u32;
38496pub const PR_PROFILE_MAILBOX: u32 = 1711996958u32;
38497pub const PR_PROFILE_MAX_RESTRICT: u32 = 1712128003u32;
38498pub const PR_PROFILE_MOAB: u32 = 1719336990u32;
38499pub const PR_PROFILE_MOAB_GUID: u32 = 1719402526u32;
38500pub const PR_PROFILE_MOAB_SEQ: u32 = 1719468035u32;
38501pub const PR_PROFILE_MOAB_W: u32 = 1719336991u32;
38502pub const PR_PROFILE_NAME: u32 = 1024589854u32;
38503pub const PR_PROFILE_NAME_A: u32 = 1024589854u32;
38504pub const PR_PROFILE_NAME_W: u32 = 1024589855u32;
38505pub const PR_PROFILE_OFFLINE_INFO: u32 = 1712390402u32;
38506pub const PR_PROFILE_OFFLINE_STORE_PATH: u32 = 1712324638u32;
38507pub const PR_PROFILE_OFFLINE_STORE_PATH_W: u32 = 1712324639u32;
38508pub const PR_PROFILE_OPEN_FLAGS: u32 = 1711865859u32;
38509pub const PR_PROFILE_OPTIONS_DATA: u32 = 1720254722u32;
38510pub const PR_PROFILE_RECONNECT_INTERVAL: u32 = 1712979971u32;
38511pub const PR_PROFILE_SECURE_MAILBOX: u32 = 1743782146u32;
38512pub const PR_PROFILE_SERVER: u32 = 1712062494u32;
38513pub const PR_PROFILE_SERVER_DN: u32 = 1712586782u32;
38514pub const PR_PROFILE_SERVER_FULL_VERSION: u32 = 1715142914u32;
38515pub const PR_PROFILE_SERVER_VERSION: u32 = 1713045507u32;
38516pub const PR_PROFILE_TRANSPORT_FLAGS: u32 = 1711603715u32;
38517pub const PR_PROFILE_TYPE: u32 = 1711931395u32;
38518pub const PR_PROFILE_UI_STATE: u32 = 1711669251u32;
38519pub const PR_PROFILE_UNRESOLVED_NAME: u32 = 1711734814u32;
38520pub const PR_PROFILE_UNRESOLVED_NAME_A: u32 = 1711734814u32;
38521pub const PR_PROFILE_UNRESOLVED_NAME_W: u32 = 1711734815u32;
38522pub const PR_PROFILE_UNRESOLVED_SERVER: u32 = 1711800350u32;
38523pub const PR_PROFILE_USER: u32 = 1711472670u32;
38524pub const PR_PROFILE_USER_SMTP_EMAIL_ADDRESS: u32 = 1715535902u32;
38525pub const PR_PROFILE_USER_SMTP_EMAIL_ADDRESS_A: u32 = 1715535902u32;
38526pub const PR_PROFILE_USER_SMTP_EMAIL_ADDRESS_W: u32 = 1715535903u32;
38527pub const PR_PROFILE_VERSION: u32 = 1711276035u32;
38528pub const PR_PROHIBIT_RECEIVE_QUOTA: u32 = 1718222851u32;
38529pub const PR_PROHIBIT_SEND_QUOTA: u32 = 1718484995u32;
38530pub const PR_PROMOTE_PROP_ID_LIST: u32 = 1718288642u32;
38531pub const PR_PROOF_OF_DELIVERY: u32 = 202440962u32;
38532pub const PR_PROOF_OF_DELIVERY_REQUESTED: u32 = 202506251u32;
38533pub const PR_PROOF_OF_SUBMISSION: u32 = 237371650u32;
38534pub const PR_PROOF_OF_SUBMISSION_REQUESTED: u32 = 2621451u32;
38535pub const PR_PROVIDER_DISPLAY: u32 = 805699614u32;
38536pub const PR_PROVIDER_DISPLAY_A: u32 = 805699614u32;
38537pub const PR_PROVIDER_DISPLAY_W: u32 = 805699615u32;
38538pub const PR_PROVIDER_DLL_NAME: u32 = 805961758u32;
38539pub const PR_PROVIDER_DLL_NAME_A: u32 = 805961758u32;
38540pub const PR_PROVIDER_DLL_NAME_W: u32 = 805961759u32;
38541pub const PR_PROVIDER_ORDINAL: u32 = 806158339u32;
38542pub const PR_PROVIDER_SUBMIT_TIME: u32 = 4718656u32;
38543pub const PR_PROVIDER_UID: u32 = 806093058u32;
38544pub const PR_PST_ENCRYPTION: u32 = 1728184323u32;
38545pub const PR_PST_PATH: u32 = 1728053278u32;
38546pub const PR_PST_PW_SZ_NEW: u32 = 1728315422u32;
38547pub const PR_PST_PW_SZ_OLD: u32 = 1728249886u32;
38548pub const PR_PST_REMEMBER_PW: u32 = 1728118795u32;
38549pub const PR_PUBLIC_FOLDER_ENTRYID: u32 = 1715208450u32;
38550pub const PR_PUBLISH_IN_ADDRESS_BOOK: u32 = 1072037899u32;
38551pub const PR_QUOTA_RECEIVE_THRESHOLD: u32 = 1730347011u32;
38552pub const PR_QUOTA_SEND_THRESHOLD: u32 = 1730281475u32;
38553pub const PR_QUOTA_WARNING_THRESHOLD: u32 = 1730215939u32;
38554pub const PR_RADIO_TELEPHONE_NUMBER: u32 = 974979102u32;
38555pub const PR_RADIO_TELEPHONE_NUMBER_A: u32 = 974979102u32;
38556pub const PR_RADIO_TELEPHONE_NUMBER_W: u32 = 974979103u32;
38557pub const PR_RANK: u32 = 1729232899u32;
38558pub const PR_RCVD_REPRESENTING_ADDRTYPE: u32 = 7798814u32;
38559pub const PR_RCVD_REPRESENTING_ADDRTYPE_A: u32 = 7798814u32;
38560pub const PR_RCVD_REPRESENTING_ADDRTYPE_W: u32 = 7798815u32;
38561pub const PR_RCVD_REPRESENTING_EMAIL_ADDRESS: u32 = 7864350u32;
38562pub const PR_RCVD_REPRESENTING_EMAIL_ADDRESS_A: u32 = 7864350u32;
38563pub const PR_RCVD_REPRESENTING_EMAIL_ADDRESS_W: u32 = 7864351u32;
38564pub const PR_RCVD_REPRESENTING_ENTRYID: u32 = 4391170u32;
38565pub const PR_RCVD_REPRESENTING_NAME: u32 = 4456478u32;
38566pub const PR_RCVD_REPRESENTING_NAME_A: u32 = 4456478u32;
38567pub const PR_RCVD_REPRESENTING_NAME_W: u32 = 4456479u32;
38568pub const PR_RCVD_REPRESENTING_SEARCH_KEY: u32 = 5374210u32;
38569pub const PR_RCVD_REPRESENTING_SID: u32 = 240582914u32;
38570pub const PR_RCVD_REPRESENTING_SID_AS_XML: u32 = 242745374u32;
38571pub const PR_RCVD_REPRESENTING_SMTP_ADDRESS: u32 = 1560805406u32;
38572pub const PR_RCVD_REPRESENTING_SMTP_ADDRESS_A: u32 = 1560805406u32;
38573pub const PR_RCVD_REPRESENTING_SMTP_ADDRESS_W: u32 = 1560805407u32;
38574pub const PR_READ: u32 = 241762315u32;
38575pub const PR_READ_RECEIPT_ENTRYID: u32 = 4587778u32;
38576pub const PR_READ_RECEIPT_REQUESTED: u32 = 2686987u32;
38577pub const PR_READ_RECEIPT_SEARCH_KEY: u32 = 5439746u32;
38578pub const PR_READ_RECEIPT_SID: u32 = 240189698u32;
38579pub const PR_READ_RECEIPT_SID_AS_XML: u32 = 242352158u32;
38580pub const PR_RECEIPT_TIME: u32 = 2752576u32;
38581pub const PR_RECEIVED_BY_ADDRTYPE: u32 = 7667742u32;
38582pub const PR_RECEIVED_BY_ADDRTYPE_A: u32 = 7667742u32;
38583pub const PR_RECEIVED_BY_ADDRTYPE_W: u32 = 7667743u32;
38584pub const PR_RECEIVED_BY_EMAIL_ADDRESS: u32 = 7733278u32;
38585pub const PR_RECEIVED_BY_EMAIL_ADDRESS_A: u32 = 7733278u32;
38586pub const PR_RECEIVED_BY_EMAIL_ADDRESS_W: u32 = 7733279u32;
38587pub const PR_RECEIVED_BY_ENTRYID: u32 = 4129026u32;
38588pub const PR_RECEIVED_BY_NAME: u32 = 4194334u32;
38589pub const PR_RECEIVED_BY_NAME_A: u32 = 4194334u32;
38590pub const PR_RECEIVED_BY_NAME_W: u32 = 4194335u32;
38591pub const PR_RECEIVED_BY_SEARCH_KEY: u32 = 5308674u32;
38592pub const PR_RECEIVED_BY_SID: u32 = 240517378u32;
38593pub const PR_RECEIVED_BY_SID_AS_XML: u32 = 242679838u32;
38594pub const PR_RECEIVED_BY_SMTP_ADDRESS: u32 = 1560739870u32;
38595pub const PR_RECEIVED_BY_SMTP_ADDRESS_A: u32 = 1560739870u32;
38596pub const PR_RECEIVED_BY_SMTP_ADDRESS_W: u32 = 1560739871u32;
38597pub const PR_RECEIVE_FOLDER_SETTINGS: u32 = 873791501u32;
38598pub const PR_RECIPIENT_CERTIFICATE: u32 = 202572034u32;
38599pub const PR_RECIPIENT_NUMBER: u32 = 1717698563u32;
38600pub const PR_RECIPIENT_NUMBER_FOR_ADVICE: u32 = 202637342u32;
38601pub const PR_RECIPIENT_NUMBER_FOR_ADVICE_A: u32 = 202637342u32;
38602pub const PR_RECIPIENT_NUMBER_FOR_ADVICE_W: u32 = 202637343u32;
38603pub const PR_RECIPIENT_ON_ASSOC_MSG_COUNT: u32 = 1722810371u32;
38604pub const PR_RECIPIENT_ON_NORMAL_MSG_COUNT: u32 = 1722744835u32;
38605pub const PR_RECIPIENT_REASSIGNMENT_PROHIBITED: u32 = 2818059u32;
38606pub const PR_RECIPIENT_STATUS: u32 = 236257283u32;
38607pub const PR_RECIPIENT_TYPE: u32 = 202702851u32;
38608pub const PR_RECORD_KEY: u32 = 267976962u32;
38609pub const PR_REDIRECTION_HISTORY: u32 = 2883842u32;
38610pub const PR_REGISTERED_MAIL_TYPE: u32 = 202768387u32;
38611pub const PR_RELATED_IPMS: u32 = 2949378u32;
38612pub const PR_REMOTE_PROGRESS: u32 = 1040908291u32;
38613pub const PR_REMOTE_PROGRESS_TEXT: u32 = 1040973854u32;
38614pub const PR_REMOTE_PROGRESS_TEXT_A: u32 = 1040973854u32;
38615pub const PR_REMOTE_PROGRESS_TEXT_W: u32 = 1040973855u32;
38616pub const PR_REMOTE_VALIDATE_OK: u32 = 1041039371u32;
38617pub const PR_RENDERING_POSITION: u32 = 923467779u32;
38618pub const PR_REPLICATION_ALWAYS_INTERVAL: u32 = 1720975363u32;
38619pub const PR_REPLICATION_MESSAGE_PRIORITY: u32 = 1720844291u32;
38620pub const PR_REPLICATION_MSG_SIZE: u32 = 1721040899u32;
38621pub const PR_REPLICATION_SCHEDULE: u32 = 1720779010u32;
38622pub const PR_REPLICATION_STYLE: u32 = 1720713219u32;
38623pub const PR_REPLICA_LIST: u32 = 1721237762u32;
38624pub const PR_REPLICA_SERVER: u32 = 1715732510u32;
38625pub const PR_REPLICA_SERVER_W: u32 = 1715732511u32;
38626pub const PR_REPLICA_VERSION: u32 = 1716191252u32;
38627pub const PR_REPLY_RECIPIENT_ENTRIES: u32 = 5177602u32;
38628pub const PR_REPLY_RECIPIENT_NAMES: u32 = 5242910u32;
38629pub const PR_REPLY_RECIPIENT_NAMES_A: u32 = 5242910u32;
38630pub const PR_REPLY_RECIPIENT_NAMES_W: u32 = 5242911u32;
38631pub const PR_REPLY_RECIPIENT_SMTP_PROXIES: u32 = 1073479710u32;
38632pub const PR_REPLY_REQUESTED: u32 = 202833931u32;
38633pub const PR_REPLY_TIME: u32 = 3145792u32;
38634pub const PR_REPORTING_DL_NAME: u32 = 268632322u32;
38635pub const PR_REPORTING_MTA_CERTIFICATE: u32 = 268697858u32;
38636pub const PR_REPORT_DESTINATION_ENTRYID: u32 = 1717895426u32;
38637pub const PR_REPORT_DESTINATION_NAME: u32 = 1717829662u32;
38638pub const PR_REPORT_DESTINATION_SID: u32 = 240386306u32;
38639pub const PR_REPORT_DESTINATION_SID_AS_XML: u32 = 242548766u32;
38640pub const PR_REPORT_ENTRYID: u32 = 4522242u32;
38641pub const PR_REPORT_NAME: u32 = 3801118u32;
38642pub const PR_REPORT_NAME_A: u32 = 3801118u32;
38643pub const PR_REPORT_NAME_W: u32 = 3801119u32;
38644pub const PR_REPORT_SEARCH_KEY: u32 = 5505282u32;
38645pub const PR_REPORT_SID: u32 = 240255234u32;
38646pub const PR_REPORT_SID_AS_XML: u32 = 242417694u32;
38647pub const PR_REPORT_TAG: u32 = 3211522u32;
38648pub const PR_REPORT_TEXT: u32 = 268501022u32;
38649pub const PR_REPORT_TEXT_A: u32 = 268501022u32;
38650pub const PR_REPORT_TEXT_W: u32 = 268501023u32;
38651pub const PR_REPORT_TIME: u32 = 3276864u32;
38652pub const PR_REQUESTED_DELIVERY_METHOD: u32 = 202899459u32;
38653pub const PR_RESERVE_RANGE_OF_IDS: u32 = 242942210u32;
38654pub const PR_RESOLVE_METHOD: u32 = 1072103427u32;
38655pub const PR_RESOURCE_FLAGS: u32 = 805896195u32;
38656pub const PR_RESOURCE_METHODS: u32 = 1040318467u32;
38657pub const PR_RESOURCE_PATH: u32 = 1040646174u32;
38658pub const PR_RESOURCE_PATH_A: u32 = 1040646174u32;
38659pub const PR_RESOURCE_PATH_W: u32 = 1040646175u32;
38660pub const PR_RESOURCE_TYPE: u32 = 1040384003u32;
38661pub const PR_RESPONSE_REQUESTED: u32 = 6488075u32;
38662pub const PR_RESPONSIBILITY: u32 = 235864075u32;
38663pub const PR_RESTRICTION_COUNT: u32 = 1722417155u32;
38664pub const PR_RETENTION_AGE_LIMIT: u32 = 1724121091u32;
38665pub const PR_RETENTION_DATE: u32 = 807141440u32;
38666pub const PR_RETENTION_FLAGS: u32 = 807206915u32;
38667pub const PR_RETENTION_PERIOD: u32 = 807010307u32;
38668pub const PR_RETURNED_IPM: u32 = 3342347u32;
38669pub const PR_RIGHTS: u32 = 1715011587u32;
38670pub const PR_ROH_FLAGS: u32 = 1713569795u32;
38671pub const PR_ROH_PROXY_AUTH_SCHEME: u32 = 1713831939u32;
38672pub const PR_ROWID: u32 = 805306371u32;
38673pub const PR_ROW_TYPE: u32 = 267714563u32;
38674pub const PR_RTF_COMPRESSED: u32 = 269025538u32;
38675pub const PR_RTF_IN_SYNC: u32 = 236912651u32;
38676pub const PR_RTF_SYNC_BODY_COUNT: u32 = 268894211u32;
38677pub const PR_RTF_SYNC_BODY_CRC: u32 = 268828675u32;
38678pub const PR_RTF_SYNC_BODY_TAG: u32 = 268959774u32;
38679pub const PR_RTF_SYNC_BODY_TAG_A: u32 = 268959774u32;
38680pub const PR_RTF_SYNC_BODY_TAG_W: u32 = 268959775u32;
38681pub const PR_RTF_SYNC_PREFIX_COUNT: u32 = 269484035u32;
38682pub const PR_RTF_SYNC_TRAILING_COUNT: u32 = 269549571u32;
38683pub const PR_RULES_DATA: u32 = 1071710466u32;
38684pub const PR_RULES_TABLE: u32 = 1071710221u32;
38685pub const PR_RULE_ACTIONS: u32 = 1719664894u32;
38686pub const PR_RULE_ACTION_NUMBER: u32 = 1716518915u32;
38687pub const PR_RULE_ACTION_TYPE: u32 = 1716060163u32;
38688pub const PR_RULE_CONDITION: u32 = 1719206141u32;
38689pub const PR_RULE_ERROR: u32 = 1715994627u32;
38690pub const PR_RULE_FOLDER_ENTRYID: u32 = 1716584706u32;
38691pub const PR_RULE_ID: u32 = 1718878228u32;
38692pub const PR_RULE_IDS: u32 = 1718944002u32;
38693pub const PR_RULE_LEVEL: u32 = 1719861251u32;
38694pub const PR_RULE_MSG_LEVEL: u32 = 1710030851u32;
38695pub const PR_RULE_MSG_NAME_W: u32 = 1709965343u32;
38696pub const PR_RULE_MSG_PROVIDER_DATA: u32 = 1710096642u32;
38697pub const PR_RULE_MSG_PROVIDER_W: u32 = 1709899807u32;
38698pub const PR_RULE_MSG_SEQUENCE: u32 = 1710424067u32;
38699pub const PR_RULE_MSG_STATE: u32 = 1709768707u32;
38700pub const PR_RULE_MSG_USER_FLAGS: u32 = 1709834243u32;
38701pub const PR_RULE_NAME: u32 = 1719795742u32;
38702pub const PR_RULE_PROVIDER: u32 = 1719730206u32;
38703pub const PR_RULE_PROVIDER_DATA: u32 = 1719927042u32;
38704pub const PR_RULE_SEQUENCE: u32 = 1719009283u32;
38705pub const PR_RULE_SERVER_RULE_ID: u32 = 1704984596u32;
38706pub const PR_RULE_STATE: u32 = 1719074819u32;
38707pub const PR_RULE_TRIGGER_HISTORY: u32 = 1072824578u32;
38708pub const PR_RULE_USER_FLAGS: u32 = 1719140355u32;
38709pub const PR_SCHEDULE_FOLDER_ENTRYID: u32 = 1713242370u32;
38710pub const PR_SEARCH: u32 = 906428429u32;
38711pub const PR_SEARCH_KEY: u32 = 806027522u32;
38712pub const PR_SECURE_IN_SITE: u32 = 1721630731u32;
38713pub const PR_SECURE_ORIGINATION: u32 = 1071972363u32;
38714pub const PR_SECURITY: u32 = 3407875u32;
38715pub const PR_SELECTABLE: u32 = 906559499u32;
38716pub const PR_SENDER_ADDRTYPE: u32 = 203292702u32;
38717pub const PR_SENDER_ADDRTYPE_A: u32 = 203292702u32;
38718pub const PR_SENDER_ADDRTYPE_W: u32 = 203292703u32;
38719pub const PR_SENDER_EMAIL_ADDRESS: u32 = 203358238u32;
38720pub const PR_SENDER_EMAIL_ADDRESS_A: u32 = 203358238u32;
38721pub const PR_SENDER_EMAIL_ADDRESS_W: u32 = 203358239u32;
38722pub const PR_SENDER_ENTRYID: u32 = 202965250u32;
38723pub const PR_SENDER_NAME: u32 = 203030558u32;
38724pub const PR_SENDER_NAME_A: u32 = 203030558u32;
38725pub const PR_SENDER_NAME_W: u32 = 203030559u32;
38726pub const PR_SENDER_SEARCH_KEY: u32 = 203227394u32;
38727pub const PR_SENDER_SID: u32 = 239927554u32;
38728pub const PR_SENDER_SID_AS_XML: u32 = 242090014u32;
38729pub const PR_SENDER_SMTP_ADDRESS: u32 = 1560346654u32;
38730pub const PR_SENDER_SMTP_ADDRESS_A: u32 = 1560346654u32;
38731pub const PR_SENDER_SMTP_ADDRESS_W: u32 = 1560346655u32;
38732pub const PR_SEND_RICH_INFO: u32 = 977272843u32;
38733pub const PR_SENSITIVITY: u32 = 3538947u32;
38734pub const PR_SENTMAIL_ENTRYID: u32 = 235536642u32;
38735pub const PR_SENT_REPRESENTING_ADDRTYPE: u32 = 6553630u32;
38736pub const PR_SENT_REPRESENTING_ADDRTYPE_A: u32 = 6553630u32;
38737pub const PR_SENT_REPRESENTING_ADDRTYPE_W: u32 = 6553631u32;
38738pub const PR_SENT_REPRESENTING_EMAIL_ADDRESS: u32 = 6619166u32;
38739pub const PR_SENT_REPRESENTING_EMAIL_ADDRESS_A: u32 = 6619166u32;
38740pub const PR_SENT_REPRESENTING_EMAIL_ADDRESS_W: u32 = 6619167u32;
38741pub const PR_SENT_REPRESENTING_ENTRYID: u32 = 4260098u32;
38742pub const PR_SENT_REPRESENTING_NAME: u32 = 4325406u32;
38743pub const PR_SENT_REPRESENTING_NAME_A: u32 = 4325406u32;
38744pub const PR_SENT_REPRESENTING_NAME_W: u32 = 4325407u32;
38745pub const PR_SENT_REPRESENTING_SEARCH_KEY: u32 = 3866882u32;
38746pub const PR_SENT_REPRESENTING_SID: u32 = 239993090u32;
38747pub const PR_SENT_REPRESENTING_SID_AS_XML: u32 = 242155550u32;
38748pub const PR_SENT_REPRESENTING_SMTP_ADDRESS: u32 = 1560412190u32;
38749pub const PR_SENT_REPRESENTING_SMTP_ADDRESS_A: u32 = 1560412190u32;
38750pub const PR_SENT_REPRESENTING_SMTP_ADDRESS_W: u32 = 1560412191u32;
38751pub const PR_SERVICES: u32 = 1024327938u32;
38752pub const PR_SERVICE_DELETE_FILES: u32 = 1024462878u32;
38753pub const PR_SERVICE_DELETE_FILES_A: u32 = 1024462878u32;
38754pub const PR_SERVICE_DELETE_FILES_W: u32 = 1024462879u32;
38755pub const PR_SERVICE_DLL_NAME: u32 = 1024065566u32;
38756pub const PR_SERVICE_DLL_NAME_A: u32 = 1024065566u32;
38757pub const PR_SERVICE_DLL_NAME_W: u32 = 1024065567u32;
38758pub const PR_SERVICE_ENTRY_NAME: u32 = 1024131102u32;
38759pub const PR_SERVICE_EXTRA_UIDS: u32 = 1024262402u32;
38760pub const PR_SERVICE_NAME: u32 = 1024000030u32;
38761pub const PR_SERVICE_NAME_A: u32 = 1024000030u32;
38762pub const PR_SERVICE_NAME_W: u32 = 1024000031u32;
38763pub const PR_SERVICE_SUPPORT_FILES: u32 = 1024397342u32;
38764pub const PR_SERVICE_SUPPORT_FILES_A: u32 = 1024397342u32;
38765pub const PR_SERVICE_SUPPORT_FILES_W: u32 = 1024397343u32;
38766pub const PR_SERVICE_UID: u32 = 1024196866u32;
38767pub const PR_SHORTTERM_ENTRYID_FROM_OBJECT: u32 = 1718747394u32;
38768pub const PR_SHORTTERM_PARENT_ENTRYID_FROM_OBJECT: u32 = 1718681858u32;
38769pub const PR_SMTP_ADDRESS: u32 = 972947486u32;
38770pub const PR_SMTP_ADDRESS_A: u32 = 972947486u32;
38771pub const PR_SMTP_ADDRESS_W: u32 = 972947487u32;
38772pub const PR_SORT_LOCALE_ID: u32 = 1728380931u32;
38773pub const PR_SORT_PARENTID: u32 = 807469314u32;
38774pub const PR_SORT_POSITION: u32 = 807403778u32;
38775pub const PR_SOURCE_FID: u32 = 241106964u32;
38776pub const PR_SOURCE_KEY: u32 = 1709179138u32;
38777pub const PR_SPLUS_FREE_BUSY_ENTRYID: u32 = 1713504514u32;
38778pub const PR_SPOOLER_STATUS: u32 = 235929603u32;
38779pub const PR_SPOUSE_NAME: u32 = 977797150u32;
38780pub const PR_SPOUSE_NAME_A: u32 = 977797150u32;
38781pub const PR_SPOUSE_NAME_W: u32 = 977797151u32;
38782pub const PR_SRC_URL_NAME: u32 = 1729036318u32;
38783pub const PR_SRC_URL_NAME_A: u32 = 1729036318u32;
38784pub const PR_SRC_URL_NAME_W: u32 = 1729036319u32;
38785pub const PR_START_DATE: u32 = 6291520u32;
38786pub const PR_START_DATE_ETC: u32 = 807076098u32;
38787pub const PR_STATE_OR_PROVINCE: u32 = 975699998u32;
38788pub const PR_STATE_OR_PROVINCE_A: u32 = 975699998u32;
38789pub const PR_STATE_OR_PROVINCE_W: u32 = 975699999u32;
38790pub const PR_STATUS: u32 = 906690563u32;
38791pub const PR_STATUS_CODE: u32 = 1040449539u32;
38792pub const PR_STATUS_STRING: u32 = 1040711710u32;
38793pub const PR_STATUS_STRING_A: u32 = 1040711710u32;
38794pub const PR_STATUS_STRING_W: u32 = 1040711711u32;
38795pub const PR_STORAGE_LIMIT_INFORMATION: u32 = 1722023939u32;
38796pub const PR_STORAGE_QUOTA_LIMIT: u32 = 1073020931u32;
38797pub const PR_STORE_ENTRYID: u32 = 268108034u32;
38798pub const PR_STORE_OFFLINE: u32 = 1714552843u32;
38799pub const PR_STORE_PROVIDERS: u32 = 1023410434u32;
38800pub const PR_STORE_RECORD_KEY: u32 = 268042498u32;
38801pub const PR_STORE_SLOWLINK: u32 = 2081030155u32;
38802pub const PR_STORE_STATE: u32 = 873332739u32;
38803pub const PR_STORE_SUPPORT_MASK: u32 = 873267203u32;
38804pub const PR_STREET_ADDRESS: u32 = 975765534u32;
38805pub const PR_STREET_ADDRESS_A: u32 = 975765534u32;
38806pub const PR_STREET_ADDRESS_W: u32 = 975765535u32;
38807pub const PR_SUBFOLDER: u32 = 1728577547u32;
38808pub const PR_SUBFOLDERS: u32 = 906625035u32;
38809pub const PR_SUBJECT: u32 = 3604510u32;
38810pub const PR_SUBJECT_A: u32 = 3604510u32;
38811pub const PR_SUBJECT_IPM: u32 = 3670274u32;
38812pub const PR_SUBJECT_PREFIX: u32 = 3997726u32;
38813pub const PR_SUBJECT_PREFIX_A: u32 = 3997726u32;
38814pub const PR_SUBJECT_PREFIX_W: u32 = 3997727u32;
38815pub const PR_SUBJECT_TRACE_INFO: u32 = 1717633282u32;
38816pub const PR_SUBJECT_W: u32 = 3604511u32;
38817pub const PR_SUBMIT_FLAGS: u32 = 236191747u32;
38818pub const PR_SUPPLEMENTARY_INFO: u32 = 203096094u32;
38819pub const PR_SUPPLEMENTARY_INFO_A: u32 = 203096094u32;
38820pub const PR_SUPPLEMENTARY_INFO_W: u32 = 203096095u32;
38821pub const PR_SURNAME: u32 = 974192670u32;
38822pub const PR_SURNAME_A: u32 = 974192670u32;
38823pub const PR_SURNAME_W: u32 = 974192671u32;
38824pub const PR_SVR_GENERATING_QUOTA_MSG: u32 = 1073152030u32;
38825pub const PR_SYNCEVENT_FIRED: u32 = 1716453387u32;
38826pub const PR_SYNCEVENT_SUPPRESS_GUID: u32 = 947912962u32;
38827pub const PR_SYNCHRONIZE_FLAGS: u32 = 1709441027u32;
38828pub const PR_SYS_CONFIG_FOLDER_ENTRYID: u32 = 1714815234u32;
38829pub const PR_TELEX_NUMBER: u32 = 975962142u32;
38830pub const PR_TELEX_NUMBER_A: u32 = 975962142u32;
38831pub const PR_TELEX_NUMBER_W: u32 = 975962143u32;
38832pub const PR_TEMPLATEID: u32 = 956432642u32;
38833pub const PR_TEST_LINE_SPEED: u32 = 1714094338u32;
38834pub const PR_TITLE: u32 = 974585886u32;
38835pub const PR_TITLE_A: u32 = 974585886u32;
38836pub const PR_TITLE_W: u32 = 974585887u32;
38837pub const PR_TNEF_CORRELATION_KEY: u32 = 8323330u32;
38838pub const PR_TNEF_UNPROCESSED_PROPS: u32 = 245104898u32;
38839pub const PR_TRACE_INFO: u32 = 1717567746u32;
38840pub const PR_TRANSFER_ENABLED: u32 = 1714028555u32;
38841pub const PR_TRANSMITABLE_DISPLAY_NAME: u32 = 975175710u32;
38842pub const PR_TRANSMITABLE_DISPLAY_NAME_A: u32 = 975175710u32;
38843pub const PR_TRANSMITABLE_DISPLAY_NAME_W: u32 = 975175711u32;
38844pub const PR_TRANSPORT_KEY: u32 = 236322819u32;
38845pub const PR_TRANSPORT_MESSAGE_HEADERS: u32 = 8192030u32;
38846pub const PR_TRANSPORT_MESSAGE_HEADERS_A: u32 = 8192030u32;
38847pub const PR_TRANSPORT_MESSAGE_HEADERS_W: u32 = 8192031u32;
38848pub const PR_TRANSPORT_PROVIDERS: u32 = 1023541506u32;
38849pub const PR_TRANSPORT_STATUS: u32 = 235995139u32;
38850pub const PR_TRUST_SENDER: u32 = 242810883u32;
38851pub const PR_TRUST_SENDER_NO: i32 = 0i32;
38852pub const PR_TRUST_SENDER_YES: i32 = 1i32;
38853pub const PR_TTYTDD_PHONE_NUMBER: u32 = 977993758u32;
38854pub const PR_TTYTDD_PHONE_NUMBER_A: u32 = 977993758u32;
38855pub const PR_TTYTDD_PHONE_NUMBER_W: u32 = 977993759u32;
38856pub const PR_TYPE_OF_MTS_USER: u32 = 203161603u32;
38857pub const PR_URL_COMP_NAME: u32 = 284360734u32;
38858pub const PR_URL_COMP_NAME_A: u32 = 284360734u32;
38859pub const PR_URL_COMP_NAME_W: u32 = 284360735u32;
38860pub const PR_URL_NAME: u32 = 1728512030u32;
38861pub const PR_URL_NAME_A: u32 = 1728512030u32;
38862pub const PR_URL_NAME_W: u32 = 1728512031u32;
38863pub const PR_USER_CERTIFICATE: u32 = 975307010u32;
38864pub const PR_USER_ENTRYID: u32 = 1712914690u32;
38865pub const PR_USER_NAME: u32 = 1712979998u32;
38866pub const PR_VALID_FOLDER_MASK: u32 = 903806979u32;
38867pub const PR_VIEWS_ENTRYID: u32 = 904200450u32;
38868pub const PR_WEDDING_ANNIVERSARY: u32 = 977338432u32;
38869pub const PR_WIN32_SECURITY_DESCRIPTOR: u32 = 1025638658u32;
38870pub const PR_WIZARD_NO_PAB_PAGE: u32 = 1728118795u32;
38871pub const PR_WIZARD_NO_PST_PAGE: u32 = 1728053259u32;
38872pub const PR_X400_CONTENT_TYPE: u32 = 3932418u32;
38873pub const PR_X400_DEFERRED_DELIVERY_CANCEL: u32 = 1040777227u32;
38874pub const PR_X400_ENVELOPE_TYPE: u32 = 1716715523u32;
38875pub const PR_XMT_SECURITY_ROLE_1: u32 = 1025835266u32;
38876pub const PR_XMT_SECURITY_ROLE_1_AS_XML: u32 = 1025835038u32;
38877pub const PR_XMT_SECURITY_ROLE_2: u32 = 1025900802u32;
38878pub const PR_XMT_SECURITY_ROLE_2_AS_XML: u32 = 1025900574u32;
38879pub const PR_XMT_SECURITY_ROLE_3: u32 = 1025966338u32;
38880pub const PR_XMT_SECURITY_ROLE_3_AS_XML: u32 = 1025966110u32;
38881pub const PR_XMT_SECURITY_ROLE_4: u32 = 1026031874u32;
38882pub const PR_XMT_SECURITY_ROLE_4_AS_XML: u32 = 1026031646u32;
38883pub const PR_XMT_SECURITY_ROLE_5: u32 = 1026097410u32;
38884pub const PR_XMT_SECURITY_ROLE_5_AS_XML: u32 = 1026097182u32;
38885pub const PR_XMT_SECURITY_ROLE_6: u32 = 1026162946u32;
38886pub const PR_XMT_SECURITY_ROLE_6_AS_XML: u32 = 1026162718u32;
38887pub const PR_XMT_SECURITY_ROLE_7: u32 = 1026228482u32;
38888pub const PR_XMT_SECURITY_ROLE_7_AS_XML: u32 = 1026228254u32;
38889pub const PR_XMT_SECURITY_ROLE_8: u32 = 1026294018u32;
38890pub const PR_XMT_SECURITY_ROLE_8_AS_XML: u32 = 1026293790u32;
38891pub const PR_XPOS: u32 = 1057292291u32;
38892pub const PR_YPOS: u32 = 1057357827u32;
38893pub const PSETID_Address: windows_core::GUID =
38894 windows_core::GUID::from_u128(0x00062004_0000_0000_c000_000000000046);
38895pub const PSETID_Appointment: windows_core::GUID =
38896 windows_core::GUID::from_u128(0x00062002_0000_0000_c000_000000000046);
38897pub const PSETID_Attachment: windows_core::GUID =
38898 windows_core::GUID::from_u128(0x96357f7f_59e1_47d0_99a7_46515c183b54);
38899pub const PSETID_Common: windows_core::GUID =
38900 windows_core::GUID::from_u128(0x00062008_0000_0000_c000_000000000046);
38901pub const PSETID_Log: windows_core::GUID =
38902 windows_core::GUID::from_u128(0x0006200a_0000_0000_c000_000000000046);
38903pub const PSETID_Meeting: windows_core::GUID =
38904 windows_core::GUID::from_u128(0x6ed8da90_450b_101b_98da_00aa003f1305);
38905pub const PSETID_Messaging: windows_core::GUID =
38906 windows_core::GUID::from_u128(0x41f28f13_83f4_4114_a584_eedb5a6b0bff);
38907pub const PSETID_Note: windows_core::GUID =
38908 windows_core::GUID::from_u128(0x0006200e_0000_0000_c000_000000000046);
38909pub const PSETID_PostRss: windows_core::GUID =
38910 windows_core::GUID::from_u128(0x00062041_0000_0000_c000_000000000046);
38911pub const PSETID_Remote: windows_core::GUID =
38912 windows_core::GUID::from_u128(0x00062014_0000_0000_c000_000000000046);
38913pub const PSETID_Report: windows_core::GUID =
38914 windows_core::GUID::from_u128(0x00062013_0000_0000_c000_000000000046);
38915pub const PSETID_Sharing: windows_core::GUID =
38916 windows_core::GUID::from_u128(0x00062040_0000_0000_c000_000000000046);
38917pub const PSETID_Task: windows_core::GUID =
38918 windows_core::GUID::from_u128(0x00062003_0000_0000_c000_000000000046);
38919pub const PSETID_UnifiedMessaging: windows_core::GUID =
38920 windows_core::GUID::from_u128(0x4442858e_a9e3_4e80_b900_317a210cc15b);
38921pub const PSETID_XmlExtractedEntities: windows_core::GUID =
38922 windows_core::GUID::from_u128(0x23239608_685d_4732_9c55_4c95cb4e8e33);
38923pub const PSTF_BEST_ENCRYPTION: u32 = 536870912u32;
38924pub const PSTF_COMPRESSABLE_ENCRYPTION: u32 = 1073741824u32;
38925pub const PSTF_NO_ENCRYPTION: u32 = 2147483648u32;
38926pub const PST_EXTERN_PROPID_BASE: u32 = 26368u32;
38927pub const PS_INTERNET_HEADERS: windows_core::GUID =
38928 windows_core::GUID::from_u128(0x00020386_0000_0000_c000_000000000046);
38929pub const PS_MAPI: windows_core::GUID =
38930 windows_core::GUID::from_u128(0x00020328_0000_0000_c000_000000000046);
38931pub const PS_PUBLIC_STRINGS: windows_core::GUID =
38932 windows_core::GUID::from_u128(0x00020329_0000_0000_c000_000000000046);
38933pub const PS_ROUTING_ADDRTYPE: windows_core::GUID =
38934 windows_core::GUID::from_u128(0x00020381_0000_0000_c000_000000000046);
38935pub const PS_ROUTING_DISPLAY_NAME: windows_core::GUID =
38936 windows_core::GUID::from_u128(0x00020382_0000_0000_c000_000000000046);
38937pub const PS_ROUTING_EMAIL_ADDRESSES: windows_core::GUID =
38938 windows_core::GUID::from_u128(0x00020380_0000_0000_c000_000000000046);
38939pub const PS_ROUTING_ENTRYID: windows_core::GUID =
38940 windows_core::GUID::from_u128(0x00020383_0000_0000_c000_000000000046);
38941pub const PS_ROUTING_SEARCH_KEY: windows_core::GUID =
38942 windows_core::GUID::from_u128(0x00020384_0000_0000_c000_000000000046);
38943pub const PT_ACTIONS: u32 = 254u32;
38944pub const PT_APPTIME: u32 = 7u32;
38945pub const PT_BINARY: u32 = 258u32;
38946pub const PT_BOOLEAN: u32 = 11u32;
38947pub const PT_CLSID: u32 = 72u32;
38948pub const PT_CURRENCY: u32 = 6u32;
38949pub const PT_DOUBLE: u32 = 5u32;
38950pub const PT_ERROR: u32 = 10u32;
38951pub const PT_FILE_EA: u32 = 260u32;
38952pub const PT_FILE_HANDLE: u32 = 259u32;
38953pub const PT_FLOAT: u32 = 4u32;
38954pub const PT_I2: u32 = 2u32;
38955pub const PT_I4: u32 = 3u32;
38956pub const PT_I8: u32 = 20u32;
38957pub const PT_LONG: u32 = 3u32;
38958pub const PT_LONGLONG: u32 = 20u32;
38959pub const PT_MV_APPTIME: u32 = 4103u32;
38960pub const PT_MV_BINARY: u32 = 4354u32;
38961pub const PT_MV_CLSID: u32 = 4168u32;
38962pub const PT_MV_CURRENCY: u32 = 4102u32;
38963pub const PT_MV_DOUBLE: u32 = 4101u32;
38964pub const PT_MV_FLOAT: u32 = 4100u32;
38965pub const PT_MV_I2: u32 = 4098u32;
38966pub const PT_MV_I4: u32 = 4099u32;
38967pub const PT_MV_I8: u32 = 4116u32;
38968pub const PT_MV_LONG: u32 = 4099u32;
38969pub const PT_MV_LONGLONG: u32 = 4116u32;
38970pub const PT_MV_R4: u32 = 4100u32;
38971pub const PT_MV_R8: u32 = 4101u32;
38972pub const PT_MV_SHORT: u32 = 4098u32;
38973pub const PT_MV_STRING8: u32 = 4126u32;
38974pub const PT_MV_SYSTIME: u32 = 4160u32;
38975pub const PT_MV_TSTRING: u32 = 4126u32;
38976pub const PT_MV_UNICODE: u32 = 4127u32;
38977pub const PT_NULL: u32 = 1u32;
38978pub const PT_OBJECT: u32 = 13u32;
38979pub const PT_PTR: u32 = 259u32;
38980pub const PT_R4: u32 = 4u32;
38981pub const PT_R8: u32 = 5u32;
38982pub const PT_SHORT: u32 = 2u32;
38983pub const PT_SRESTRICTION: u32 = 253u32;
38984pub const PT_STRING8: u32 = 30u32;
38985pub const PT_SYSTIME: u32 = 64u32;
38986pub const PT_TSTRING: u32 = 31u32;
38987pub const PT_UNICODE: u32 = 31u32;
38988pub const PT_UNSPECIFIED: u32 = 0u32;
38989pub const PT_VIRTUAL: u32 = 261u32;
38990#[repr(C)]
38991#[derive(Clone, Copy, Debug, PartialEq)]
38992pub struct READSTATE {
38993 pub cbSourceKey: u32,
38994 pub pbSourceKey: *mut u8,
38995 pub ulFlags: u32,
38996}
38997impl Default for READSTATE {
38998 fn default() -> Self {
38999 unsafe { core::mem::zeroed() }
39000 }
39001}
39002pub const RECURSIVE_SEARCH: u32 = 4u32;
39003pub const RECURSIVE_SORT: u32 = 2u32;
39004pub const REFRESH_XP_HEADER_CACHE: u32 = 65536u32;
39005#[repr(transparent)]
39006#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
39007pub struct RELOADTYPE(pub i32);
39008pub const RELOAD_HEADER_APPEND: RELOADTYPE = RELOADTYPE(2i32);
39009pub const RELOAD_HEADER_NONE: RELOADTYPE = RELOADTYPE(0i32);
39010pub const RELOAD_HEADER_REPLACE: RELOADTYPE = RELOADTYPE(3i32);
39011pub const RELOAD_HEADER_RESET: RELOADTYPE = RELOADTYPE(1i32);
39012pub const RELOP_EQ: u32 = 4u32;
39013pub const RELOP_GE: u32 = 3u32;
39014pub const RELOP_GT: u32 = 2u32;
39015pub const RELOP_LE: u32 = 1u32;
39016pub const RELOP_LT: u32 = 0u32;
39017pub const RELOP_MEMBER_OF_DL: u32 = 100u32;
39018pub const RELOP_NE: u32 = 5u32;
39019pub const RELOP_RE: u32 = 6u32;
39020pub type REMOVEPREPROCESSINFO = Option<
39021 unsafe extern "system" fn(lpmessage: windows_core::Ref<'_, IMessage>) -> windows_core::HRESULT,
39022>;
39023pub const RESOLVE_METHOD_DEFAULT: u32 = 0u32;
39024pub const RESOLVE_METHOD_LAST_WRITER_WINS: u32 = 1u32;
39025pub const RESOLVE_METHOD_NO_CONFLICT_NOTIFICATION: u32 = 2u32;
39026pub const RESTART_SEARCH: u32 = 2u32;
39027pub const RES_AND: u32 = 0u32;
39028pub const RES_ANNOTATION: u32 = 12u32;
39029pub const RES_BITMASK: u32 = 6u32;
39030pub const RES_COMMENT: u32 = 10u32;
39031pub const RES_COMPAREPROPS: u32 = 5u32;
39032pub const RES_CONTENT: u32 = 3u32;
39033pub const RES_COUNT: u32 = 11u32;
39034pub const RES_EXIST: u32 = 8u32;
39035pub const RES_NOT: u32 = 2u32;
39036pub const RES_OR: u32 = 1u32;
39037pub const RES_PROPERTY: u32 = 4u32;
39038pub const RES_SIZE: u32 = 7u32;
39039pub const RES_SUBRESTRICTION: u32 = 9u32;
39040pub const RETENTION_FLAGS_AUTOTAG: u32 = 4u32;
39041pub const RETENTION_FLAGS_EXPLICIT: u32 = 1u32;
39042pub const RETENTION_FLAGS_EXPLICIT_ARCHIVE: u32 = 16u32;
39043pub const RETENTION_FLAGS_PERSONAL: u32 = 8u32;
39044pub const RETENTION_FLAGS_TAG_CHANGED: u32 = 2u32;
39045#[repr(C)]
39046#[derive(Clone, Copy, Debug, PartialEq)]
39047pub struct RFC1522INFO {
39048 pub fRfc1522Allowed: windows_core::BOOL,
39049 pub fRfc1522Used: windows_core::BOOL,
39050 pub fAllow8bit: windows_core::BOOL,
39051 pub hRfc1522Cset: *mut HCHARSET__,
39052}
39053impl Default for RFC1522INFO {
39054 fn default() -> Self {
39055 unsafe { core::mem::zeroed() }
39056 }
39057}
39058pub const ROHAUTH_BASIC: u32 = 1u32;
39059pub const ROHAUTH_NTLM: u32 = 2u32;
39060pub const ROHFLAGS_HTTP_FIRST_ON_FAST: u32 = 8u32;
39061pub const ROHFLAGS_HTTP_FIRST_ON_SLOW: u32 = 32u32;
39062pub const ROHFLAGS_MUTUAL_AUTH: u32 = 4u32;
39063pub const ROHFLAGS_SSL_ONLY: u32 = 2u32;
39064pub const ROHFLAGS_USE_ROH: u32 = 1u32;
39065pub const ROLESCOPE_FOLDER: u32 = 1u32;
39066pub const ROLESCOPE_MAX: u32 = 1u32;
39067pub const ROLESCOPE_OBJECT: u32 = 0u32;
39068#[repr(C)]
39069#[derive(Clone, Copy, Debug, PartialEq)]
39070pub struct ROWENTRY {
39071 pub ulRowFlags: u32,
39072 pub cValues: u32,
39073 pub rgPropVals: *mut SPropValue,
39074}
39075impl Default for ROWENTRY {
39076 fn default() -> Self {
39077 unsafe { core::mem::zeroed() }
39078 }
39079}
39080#[repr(C)]
39081#[derive(Clone, Copy, Debug, PartialEq)]
39082pub struct ROWLIST {
39083 pub cEntries: u32,
39084 pub aEntries: [ROWENTRY; 1],
39085}
39086impl Default for ROWLIST {
39087 fn default() -> Self {
39088 unsafe { core::mem::zeroed() }
39089 }
39090}
39091pub const ROWLIST_REPLACE: u32 = 1u32;
39092pub const ROW_ADD: u32 = 1u32;
39093pub const ROW_MODIFY: u32 = 2u32;
39094pub const ROW_REMOVE: u32 = 4u32;
39095pub const RTF_SYNC_BODY_CHANGED: u32 = 2u32;
39096pub const RTF_SYNC_RTF_CHANGED: u32 = 1u32;
39097pub const RULE_ERR_CREATE_DAE: u32 = 5u32;
39098pub const RULE_ERR_CREATE_DAM: u32 = 8u32;
39099pub const RULE_ERR_DELIVERY: u32 = 3u32;
39100pub const RULE_ERR_EXECUTION: u32 = 11u32;
39101pub const RULE_ERR_FIRST: u32 = 1u32;
39102pub const RULE_ERR_LAST: u32 = 13u32;
39103pub const RULE_ERR_LOAD: u32 = 2u32;
39104pub const RULE_ERR_NO_FOLDER: u32 = 6u32;
39105pub const RULE_ERR_NO_RIGHTS: u32 = 7u32;
39106pub const RULE_ERR_NO_SENDAS: u32 = 9u32;
39107pub const RULE_ERR_NO_TEMPLATE: u32 = 10u32;
39108pub const RULE_ERR_PARSING: u32 = 4u32;
39109pub const RULE_ERR_QUOTA_EXCEEDED: u32 = 12u32;
39110pub const RULE_ERR_TOO_MANY_RECIPS: u32 = 13u32;
39111pub const RULE_ERR_UNKNOWN: u32 = 1u32;
39112pub const SAVEBODY_KEEPBOUNDARY: u32 = 1u32;
39113#[repr(transparent)]
39114#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
39115pub struct SAVEOPTS(pub i32);
39116pub const SAVEOPTS_NOSAVE: SAVEOPTS = SAVEOPTS(1i32);
39117pub const SAVEOPTS_PROMPTSAVE: SAVEOPTS = SAVEOPTS(2i32);
39118pub const SAVEOPTS_SAVEIFDIRTY: SAVEOPTS = SAVEOPTS(0i32);
39119pub const SAVE_FORMAT_RICHTEXT: u32 = 2u32;
39120pub const SAVE_FORMAT_TEXT: u32 = 1u32;
39121pub const SAVE_RFC1521: MIMESAVETYPE = MIMESAVETYPE(1i32);
39122pub const SAVE_RFC822: MIMESAVETYPE = MIMESAVETYPE(0i32);
39123#[repr(C)]
39124#[derive(Clone, Copy, Debug, PartialEq)]
39125pub struct SAndRestriction {
39126 pub cRes: u32,
39127 pub lpRes: *mut SRestriction,
39128}
39129impl Default for SAndRestriction {
39130 fn default() -> Self {
39131 unsafe { core::mem::zeroed() }
39132 }
39133}
39134#[repr(C)]
39135#[derive(Clone, Copy, Debug, PartialEq)]
39136pub struct SAnnotationRestriction {
39137 pub cValues: u32,
39138 pub lpRes: *mut SRestriction,
39139 pub lpProp: *mut SPropValue,
39140}
39141impl Default for SAnnotationRestriction {
39142 fn default() -> Self {
39143 unsafe { core::mem::zeroed() }
39144 }
39145}
39146#[repr(C)]
39147#[derive(Clone, Copy, Debug, PartialEq)]
39148pub struct SAppTimeArray {
39149 pub cValues: u32,
39150 pub lpat: *mut f64,
39151}
39152impl Default for SAppTimeArray {
39153 fn default() -> Self {
39154 unsafe { core::mem::zeroed() }
39155 }
39156}
39157#[repr(C)]
39158#[derive(Clone, Copy, Debug, PartialEq)]
39159pub struct SBinary {
39160 pub cb: u32,
39161 pub lpb: *mut u8,
39162}
39163impl Default for SBinary {
39164 fn default() -> Self {
39165 unsafe { core::mem::zeroed() }
39166 }
39167}
39168#[repr(C)]
39169#[derive(Clone, Copy, Debug, PartialEq)]
39170pub struct SBinaryArray {
39171 pub cValues: u32,
39172 pub lpbin: *mut SBinary,
39173}
39174impl Default for SBinaryArray {
39175 fn default() -> Self {
39176 unsafe { core::mem::zeroed() }
39177 }
39178}
39179#[repr(C)]
39180#[derive(Clone, Copy, Debug, PartialEq)]
39181pub struct SBitMaskRestriction {
39182 pub relBMR: u32,
39183 pub ulPropTag: u32,
39184 pub ulMask: u32,
39185}
39186impl Default for SBitMaskRestriction {
39187 fn default() -> Self {
39188 unsafe { core::mem::zeroed() }
39189 }
39190}
39191#[repr(C)]
39192#[derive(Clone, Copy, Debug, PartialEq)]
39193pub struct SCommentRestriction {
39194 pub cValues: u32,
39195 pub lpRes: *mut SRestriction,
39196 pub lpProp: *mut SPropValue,
39197}
39198impl Default for SCommentRestriction {
39199 fn default() -> Self {
39200 unsafe { core::mem::zeroed() }
39201 }
39202}
39203#[repr(C)]
39204#[derive(Clone, Copy, Debug, PartialEq)]
39205pub struct SComparePropsRestriction {
39206 pub relop: u32,
39207 pub ulPropTag1: u32,
39208 pub ulPropTag2: u32,
39209}
39210impl Default for SComparePropsRestriction {
39211 fn default() -> Self {
39212 unsafe { core::mem::zeroed() }
39213 }
39214}
39215#[repr(C)]
39216#[derive(Clone, Copy, Debug, PartialEq)]
39217pub struct SContentRestriction {
39218 pub ulFuzzyLevel: u32,
39219 pub ulPropTag: u32,
39220 pub lpProp: *mut SPropValue,
39221}
39222impl Default for SContentRestriction {
39223 fn default() -> Self {
39224 unsafe { core::mem::zeroed() }
39225 }
39226}
39227#[repr(C)]
39228#[derive(Clone, Copy, Debug, PartialEq)]
39229pub struct SCountRestriction {
39230 pub ulCount: u32,
39231 pub lpRes: *mut SRestriction,
39232}
39233impl Default for SCountRestriction {
39234 fn default() -> Self {
39235 unsafe { core::mem::zeroed() }
39236 }
39237}
39238#[repr(C)]
39239#[derive(Clone, Copy, Debug, PartialEq)]
39240pub struct SCurrencyArray {
39241 pub cValues: u32,
39242 pub lpcur: *mut windows::Win32::System::Com::CY,
39243}
39244impl Default for SCurrencyArray {
39245 fn default() -> Self {
39246 unsafe { core::mem::zeroed() }
39247 }
39248}
39249#[repr(C)]
39250#[derive(Clone, Copy, Debug, PartialEq)]
39251pub struct SDateTimeArray {
39252 pub cValues: u32,
39253 pub lpft: *mut windows::Win32::Foundation::FILETIME,
39254}
39255impl Default for SDateTimeArray {
39256 fn default() -> Self {
39257 unsafe { core::mem::zeroed() }
39258 }
39259}
39260#[repr(C)]
39261#[derive(Clone, Copy, Debug, PartialEq)]
39262pub struct SDoubleArray {
39263 pub cValues: u32,
39264 pub lpdbl: *mut f64,
39265}
39266impl Default for SDoubleArray {
39267 fn default() -> Self {
39268 unsafe { core::mem::zeroed() }
39269 }
39270}
39271pub const SEARCH_FOREGROUND: u32 = 8u32;
39272pub const SEARCH_REBUILD: u32 = 2u32;
39273pub const SEARCH_RECURSIVE: u32 = 4u32;
39274pub const SEARCH_RUNNING: u32 = 1u32;
39275pub const SECURITY_DESCRIPTOR_TRANSFER_VERSION: u32 = 3u32;
39276pub const SECURITY_ENCRYPTED: u32 = 2u32;
39277pub const SECURITY_SIGNED: u32 = 1u32;
39278pub const SEF_ENCRYPTWITHNOSENDERCERT: u32 = 1u32;
39279pub const SEF_MASK: u32 = 65535u32;
39280pub const SEF_SENDERSCERTPROVIDED: u32 = 2u32;
39281pub const SENSITIVITY_COMPANY_CONFIDENTIAL: u32 = 3u32;
39282pub const SENSITIVITY_NONE: u32 = 0u32;
39283pub const SENSITIVITY_PERSONAL: u32 = 1u32;
39284pub const SENSITIVITY_PRIVATE: u32 = 2u32;
39285pub type SERVICEWIZARDDLGPROC = Option<
39286 unsafe extern "system" fn(
39287 hdlg: windows::Win32::Foundation::HWND,
39288 wmsgid: u32,
39289 wparam: windows::Win32::Foundation::WPARAM,
39290 lparam: windows::Win32::Foundation::LPARAM,
39291 ) -> windows_core::BOOL,
39292>;
39293pub const SERVICE_CREATE_WITH_STORE: u32 = 4u32;
39294pub const SERVICE_DEFAULT_STORE: u32 = 1u32;
39295pub const SERVICE_LOGON_FAILED: u32 = 32u32;
39296pub const SERVICE_NO_PRIMARY_IDENTITY: u32 = 32u32;
39297pub const SERVICE_PRIMARY_IDENTITY: u32 = 8u32;
39298pub const SERVICE_SINGLE_COPY: u32 = 2u32;
39299pub const SERVICE_UI_ALLOWED: u32 = 16u32;
39300pub const SERVICE_UI_ALWAYS: u32 = 2u32;
39301pub const SETID_AirSync: windows_core::GUID =
39302 windows_core::GUID::from_u128(0x71035549_0739_4dcb_9163_00f0580dbbdf);
39303#[repr(C)]
39304#[derive(Clone, Copy, Debug, PartialEq)]
39305pub struct SExistRestriction {
39306 pub ulReserved1: u32,
39307 pub ulPropTag: u32,
39308 pub ulReserved2: u32,
39309}
39310impl Default for SExistRestriction {
39311 fn default() -> Self {
39312 unsafe { core::mem::zeroed() }
39313 }
39314}
39315pub const SF_DISABLE_STARTUP_SYNC: u32 = 1u32;
39316#[repr(C)]
39317#[derive(Clone, Copy, Debug, PartialEq)]
39318pub struct SGuidArray {
39319 pub cValues: u32,
39320 pub lpguid: *mut windows_core::GUID,
39321}
39322impl Default for SGuidArray {
39323 fn default() -> Self {
39324 unsafe { core::mem::zeroed() }
39325 }
39326}
39327pub const SHALLOW_SEARCH: u32 = 8u32;
39328pub const SHOW_SOFT_DELETES: u32 = 2u32;
39329pub const SHOW_SUBFOLDERS: u32 = 4u32;
39330pub const SHOW_XP_SESSION_UI: u32 = 4194304u32;
39331pub const SIMPLE: CERTNAMETYPE = CERTNAMETYPE(0i32);
39332#[repr(C)]
39333#[derive(Clone, Copy, Debug, PartialEq)]
39334pub struct SLPSTRArray {
39335 pub cValues: u32,
39336 pub lppszA: *mut windows_core::PSTR,
39337}
39338impl Default for SLPSTRArray {
39339 fn default() -> Self {
39340 unsafe { core::mem::zeroed() }
39341 }
39342}
39343#[repr(C)]
39344#[derive(Clone, Copy, Debug, PartialEq)]
39345pub struct SLargeIntegerArray {
39346 pub cValues: u32,
39347 pub lpli: *mut i64,
39348}
39349impl Default for SLargeIntegerArray {
39350 fn default() -> Self {
39351 unsafe { core::mem::zeroed() }
39352 }
39353}
39354#[repr(C)]
39355#[derive(Clone, Copy, Debug, PartialEq)]
39356pub struct SLongArray {
39357 pub cValues: u32,
39358 pub lpl: *mut i32,
39359}
39360impl Default for SLongArray {
39361 fn default() -> Self {
39362 unsafe { core::mem::zeroed() }
39363 }
39364}
39365#[repr(C)]
39366#[derive(Clone, Debug, PartialEq)]
39367pub struct SMAPIFormInfoArray {
39368 pub cForms: u32,
39369 pub aFormInfo: [core::mem::ManuallyDrop<Option<IMAPIFormInfo>>; 1],
39370}
39371impl Default for SMAPIFormInfoArray {
39372 fn default() -> Self {
39373 unsafe { core::mem::zeroed() }
39374 }
39375}
39376#[repr(C)]
39377#[derive(Clone, Copy)]
39378pub struct SMAPIFormProp {
39379 pub ulFlags: u32,
39380 pub nPropType: u32,
39381 pub nmid: MAPINAMEID,
39382 pub pszDisplayName: *mut i8,
39383 pub nSpecialType: u32,
39384 pub u: SMAPIFormProp_0,
39385}
39386impl Default for SMAPIFormProp {
39387 fn default() -> Self {
39388 unsafe { core::mem::zeroed() }
39389 }
39390}
39391#[repr(C)]
39392#[derive(Clone, Copy)]
39393pub union SMAPIFormProp_0 {
39394 pub s1: SMAPIFormProp_0_0,
39395}
39396impl Default for SMAPIFormProp_0 {
39397 fn default() -> Self {
39398 unsafe { core::mem::zeroed() }
39399 }
39400}
39401#[repr(C)]
39402#[derive(Clone, Copy)]
39403pub struct SMAPIFormProp_0_0 {
39404 pub nmidIdx: MAPINAMEID,
39405 pub cfpevAvailable: u32,
39406 pub pfpevAvailable: *mut SMAPIFormPropEnumVal,
39407}
39408impl Default for SMAPIFormProp_0_0 {
39409 fn default() -> Self {
39410 unsafe { core::mem::zeroed() }
39411 }
39412}
39413#[repr(C)]
39414#[derive(Clone, Copy)]
39415pub struct SMAPIFormPropArray {
39416 pub cProps: u32,
39417 pub ulPad: u32,
39418 pub aFormProp: [SMAPIFormProp; 1],
39419}
39420impl Default for SMAPIFormPropArray {
39421 fn default() -> Self {
39422 unsafe { core::mem::zeroed() }
39423 }
39424}
39425#[repr(C)]
39426#[derive(Clone, Copy, Debug, PartialEq)]
39427pub struct SMAPIFormPropEnumVal {
39428 pub pszDisplayName: *mut i8,
39429 pub nVal: u32,
39430}
39431impl Default for SMAPIFormPropEnumVal {
39432 fn default() -> Self {
39433 unsafe { core::mem::zeroed() }
39434 }
39435}
39436#[repr(C)]
39437#[derive(Clone, Copy, Debug, PartialEq)]
39438pub struct SMAPIVerb {
39439 pub lVerb: i32,
39440 pub szVerbname: *mut i8,
39441 pub fuFlags: u32,
39442 pub grfAttribs: u32,
39443 pub ulFlags: u32,
39444}
39445impl Default for SMAPIVerb {
39446 fn default() -> Self {
39447 unsafe { core::mem::zeroed() }
39448 }
39449}
39450#[repr(C)]
39451#[derive(Clone, Copy, Debug, PartialEq)]
39452pub struct SMAPIVerbArray {
39453 pub cMAPIVerb: u32,
39454 pub aMAPIVerb: [SMAPIVerb; 1],
39455}
39456impl Default for SMAPIVerbArray {
39457 fn default() -> Self {
39458 unsafe { core::mem::zeroed() }
39459 }
39460}
39461#[repr(C)]
39462#[derive(Clone, Copy, Debug, PartialEq)]
39463pub struct SMessageClassArray {
39464 pub cValues: u32,
39465 pub aMessageClass: [windows_core::PSTR; 1],
39466}
39467impl Default for SMessageClassArray {
39468 fn default() -> Self {
39469 unsafe { core::mem::zeroed() }
39470 }
39471}
39472#[repr(C)]
39473#[derive(Clone, Copy, Debug, PartialEq)]
39474pub struct SNotRestriction {
39475 pub ulReserved: u32,
39476 pub lpRes: *mut SRestriction,
39477}
39478impl Default for SNotRestriction {
39479 fn default() -> Self {
39480 unsafe { core::mem::zeroed() }
39481 }
39482}
39483pub const SOF_UNIQUEFILENAME: u32 = 2147483648u32;
39484#[repr(C)]
39485#[derive(Clone, Copy, Debug, PartialEq)]
39486pub struct SOrRestriction {
39487 pub cRes: u32,
39488 pub lpRes: *mut SRestriction,
39489}
39490impl Default for SOrRestriction {
39491 fn default() -> Self {
39492 unsafe { core::mem::zeroed() }
39493 }
39494}
39495pub const SPAMFILTER_ONSAVE: u32 = 128u32;
39496#[repr(C)]
39497#[derive(Clone, Copy, Debug, PartialEq)]
39498pub struct SPropAttrArray {
39499 pub cValues: u32,
39500 pub aPropAttr: [u32; 1],
39501}
39502impl Default for SPropAttrArray {
39503 fn default() -> Self {
39504 unsafe { core::mem::zeroed() }
39505 }
39506}
39507#[repr(C)]
39508#[derive(Clone, Copy, Debug, PartialEq)]
39509pub struct SPropProblem {
39510 pub ulIndex: u32,
39511 pub ulPropTag: u32,
39512 pub scode: i32,
39513}
39514impl Default for SPropProblem {
39515 fn default() -> Self {
39516 unsafe { core::mem::zeroed() }
39517 }
39518}
39519#[repr(C)]
39520#[derive(Clone, Copy, Debug, PartialEq)]
39521pub struct SPropProblemArray {
39522 pub cProblem: u32,
39523 pub aProblem: [SPropProblem; 1],
39524}
39525impl Default for SPropProblemArray {
39526 fn default() -> Self {
39527 unsafe { core::mem::zeroed() }
39528 }
39529}
39530#[repr(C)]
39531#[derive(Clone, Copy, Debug, PartialEq)]
39532pub struct SPropTagArray {
39533 pub cValues: u32,
39534 pub aulPropTag: [u32; 1],
39535}
39536impl Default for SPropTagArray {
39537 fn default() -> Self {
39538 unsafe { core::mem::zeroed() }
39539 }
39540}
39541#[repr(C)]
39542#[derive(Clone, Copy)]
39543pub struct SPropValue {
39544 pub ulPropTag: u32,
39545 pub dwAlignPad: u32,
39546 pub Value: __UPV,
39547}
39548impl Default for SPropValue {
39549 fn default() -> Self {
39550 unsafe { core::mem::zeroed() }
39551 }
39552}
39553#[repr(C)]
39554#[derive(Clone, Copy, Debug, PartialEq)]
39555pub struct SPropertyRestriction {
39556 pub relop: u32,
39557 pub ulPropTag: u32,
39558 pub lpProp: *mut SPropValue,
39559}
39560impl Default for SPropertyRestriction {
39561 fn default() -> Self {
39562 unsafe { core::mem::zeroed() }
39563 }
39564}
39565#[repr(C)]
39566#[derive(Clone, Copy, Debug, PartialEq)]
39567pub struct SRealArray {
39568 pub cValues: u32,
39569 pub lpflt: *mut f32,
39570}
39571impl Default for SRealArray {
39572 fn default() -> Self {
39573 unsafe { core::mem::zeroed() }
39574 }
39575}
39576#[repr(C)]
39577#[derive(Clone, Copy)]
39578pub struct SRestriction {
39579 pub rt: u32,
39580 pub res: SRestriction_0,
39581}
39582impl Default for SRestriction {
39583 fn default() -> Self {
39584 unsafe { core::mem::zeroed() }
39585 }
39586}
39587#[repr(C)]
39588#[derive(Clone, Copy)]
39589pub union SRestriction_0 {
39590 pub resCompareProps: SComparePropsRestriction,
39591 pub resAnd: SAndRestriction,
39592 pub resOr: SOrRestriction,
39593 pub resNot: SNotRestriction,
39594 pub resContent: SContentRestriction,
39595 pub resProperty: SPropertyRestriction,
39596 pub resBitMask: SBitMaskRestriction,
39597 pub resSize: SSizeRestriction,
39598 pub resExist: SExistRestriction,
39599 pub resSub: SSubRestriction,
39600 pub resComment: SCommentRestriction,
39601 pub resAnnotation: SAnnotationRestriction,
39602 pub resCount: SCountRestriction,
39603}
39604impl Default for SRestriction_0 {
39605 fn default() -> Self {
39606 unsafe { core::mem::zeroed() }
39607 }
39608}
39609#[repr(C)]
39610#[derive(Clone, Copy, Debug, PartialEq)]
39611pub struct SRow {
39612 pub ulAdrEntryPad: u32,
39613 pub cValues: u32,
39614 pub lpProps: *mut SPropValue,
39615}
39616impl Default for SRow {
39617 fn default() -> Self {
39618 unsafe { core::mem::zeroed() }
39619 }
39620}
39621#[repr(C)]
39622#[derive(Clone, Copy, Debug, PartialEq)]
39623pub struct SRowSet {
39624 pub cRows: u32,
39625 pub aRow: [SRow; 1],
39626}
39627impl Default for SRowSet {
39628 fn default() -> Self {
39629 unsafe { core::mem::zeroed() }
39630 }
39631}
39632#[repr(C)]
39633#[derive(Clone, Copy, Debug, PartialEq)]
39634pub struct SShortArray {
39635 pub cValues: u32,
39636 pub lpi: *mut i16,
39637}
39638impl Default for SShortArray {
39639 fn default() -> Self {
39640 unsafe { core::mem::zeroed() }
39641 }
39642}
39643#[repr(C)]
39644#[derive(Clone, Copy, Debug, PartialEq)]
39645pub struct SSizeRestriction {
39646 pub relop: u32,
39647 pub ulPropTag: u32,
39648 pub cb: u32,
39649}
39650impl Default for SSizeRestriction {
39651 fn default() -> Self {
39652 unsafe { core::mem::zeroed() }
39653 }
39654}
39655#[repr(C)]
39656#[derive(Clone, Copy, Debug, PartialEq)]
39657pub struct SSortOrder {
39658 pub ulPropTag: u32,
39659 pub ulOrder: u32,
39660}
39661impl Default for SSortOrder {
39662 fn default() -> Self {
39663 unsafe { core::mem::zeroed() }
39664 }
39665}
39666#[repr(C)]
39667#[derive(Clone, Copy, Debug, PartialEq)]
39668pub struct SSortOrderSet {
39669 pub cSorts: u32,
39670 pub cCategories: u32,
39671 pub cExpanded: u32,
39672 pub aSort: [SSortOrder; 1],
39673}
39674impl Default for SSortOrderSet {
39675 fn default() -> Self {
39676 unsafe { core::mem::zeroed() }
39677 }
39678}
39679#[repr(C)]
39680#[derive(Clone, Copy, Debug, PartialEq)]
39681pub struct SSubRestriction {
39682 pub ulSubObject: u32,
39683 pub lpRes: *mut SRestriction,
39684}
39685impl Default for SSubRestriction {
39686 fn default() -> Self {
39687 unsafe { core::mem::zeroed() }
39688 }
39689}
39690pub const STATUSROW_UPDATE: u32 = 268435456u32;
39691pub const STATUS_AVAILABLE: u32 = 1u32;
39692pub const STATUS_CHANGE_PASSWORD: u32 = 4u32;
39693pub const STATUS_DEFAULT_OUTBOUND: u32 = 1u32;
39694pub const STATUS_DEFAULT_STORE: u32 = 2u32;
39695pub const STATUS_FAILURE: u32 = 4u32;
39696pub const STATUS_FLUSH_QUEUES: u32 = 8u32;
39697pub const STATUS_INBOUND_ACTIVE: u32 = 131072u32;
39698pub const STATUS_INBOUND_ENABLED: u32 = 65536u32;
39699pub const STATUS_INBOUND_FLUSH: u32 = 262144u32;
39700pub const STATUS_NEED_IPM_TREE: u32 = 2048u32;
39701pub const STATUS_NO_DEFAULT_STORE: u32 = 64u32;
39702pub const STATUS_NO_PRIMARY_IDENTITY: u32 = 32u32;
39703#[repr(C)]
39704#[derive(Clone, Copy, Debug, PartialEq)]
39705pub struct STATUS_OBJECT_NOTIFICATION {
39706 pub cbEntryID: u32,
39707 pub lpEntryID: *mut ENTRYID,
39708 pub cValues: u32,
39709 pub lpPropVals: *mut SPropValue,
39710}
39711impl Default for STATUS_OBJECT_NOTIFICATION {
39712 fn default() -> Self {
39713 unsafe { core::mem::zeroed() }
39714 }
39715}
39716pub const STATUS_OFFLINE: u32 = 2u32;
39717pub const STATUS_OUTBOUND_ACTIVE: u32 = 2097152u32;
39718pub const STATUS_OUTBOUND_ENABLED: u32 = 1048576u32;
39719pub const STATUS_OUTBOUND_FLUSH: u32 = 4194304u32;
39720pub const STATUS_OWN_STORE: u32 = 256u32;
39721pub const STATUS_PRIMARY_IDENTITY: u32 = 4u32;
39722pub const STATUS_PRIMARY_STORE: u32 = 4096u32;
39723pub const STATUS_REMOTE_ACCESS: u32 = 8388608u32;
39724pub const STATUS_SECONDARY_STORE: u32 = 8192u32;
39725pub const STATUS_SETTINGS_DIALOG: u32 = 2u32;
39726pub const STATUS_SIMPLE_STORE: u32 = 8u32;
39727pub const STATUS_TEMP_SECTION: u32 = 128u32;
39728pub const STATUS_VALIDATE_STATE: u32 = 1u32;
39729pub const STATUS_XP_PREFER_LAST: u32 = 16u32;
39730pub const STGSTRM_CREATE: u32 = 4096u32;
39731pub const STGSTRM_CURRENT: u32 = 268435456u32;
39732pub const STGSTRM_MODIFY: u32 = 2u32;
39733pub const STGSTRM_RESET: u32 = 0u32;
39734pub const STOCK_REPLY_TEMPLATE: u32 = 2u32;
39735pub const STOP_SEARCH: u32 = 1u32;
39736pub const STORE_ATTACH_OK: u32 = 32u32;
39737pub const STORE_CATEGORIZE_OK: u32 = 1024u32;
39738pub const STORE_CREATE_OK: u32 = 16u32;
39739pub const STORE_ENTRYID_UNIQUE: u32 = 1u32;
39740pub const STORE_HAS_SEARCHES: u32 = 16777216u32;
39741pub const STORE_ITEMPROC: u32 = 2097152u32;
39742pub const STORE_MODIFY_OK: u32 = 8u32;
39743pub const STORE_MV_PROPS_OK: u32 = 512u32;
39744pub const STORE_NOTIFY_OK: u32 = 256u32;
39745pub const STORE_OLE_OK: u32 = 64u32;
39746pub const STORE_PUBLIC_FOLDERS: u32 = 16384u32;
39747pub const STORE_READONLY: u32 = 2u32;
39748pub const STORE_RESTRICTION_OK: u32 = 4096u32;
39749pub const STORE_RTF_OK: u32 = 2048u32;
39750pub const STORE_SEARCH_OK: u32 = 4u32;
39751pub const STORE_SORT_OK: u32 = 8192u32;
39752pub const STORE_SUBMIT_OK: u32 = 128u32;
39753pub const STORE_UNCOMPRESSED_RTF: u32 = 32768u32;
39754pub const STORE_UNICODE_OK: u32 = 262144u32;
39755pub const STREAM_APPEND: u32 = 4u32;
39756pub const ST_CLEAR_OOF_HIST: u32 = 2147483648u32;
39757pub const ST_DISABLED: u32 = 0u32;
39758pub const ST_ENABLED: u32 = 1u32;
39759pub const ST_ERROR: u32 = 2u32;
39760pub const ST_EXIT_LEVEL: u32 = 16u32;
39761pub const ST_KEEP_OOF_HIST: u32 = 8u32;
39762pub const ST_ONLY_WHEN_OOF: u32 = 4u32;
39763pub const ST_RULE_PARSE_ERROR: u32 = 64u32;
39764pub const ST_SKIP_IF_SCL_IS_SAFE: u32 = 32u32;
39765pub const SUBMITFLAG_LOCKED: u32 = 1u32;
39766pub const SUBMITFLAG_PREPROCESS: u32 = 2u32;
39767pub const SUCCESS_SUCCESS: u32 = 0u32;
39768pub const SUPPRESS_RECEIPT: u32 = 1u32;
39769pub const SUPPRESS_UI: u32 = 1u32;
39770pub const SUPRESS_NOTIFICATIONS_ON_MY_ACTIONS: u32 = 4096u32;
39771#[repr(C)]
39772#[derive(Clone, Copy, Debug, PartialEq)]
39773pub struct SWStringArray {
39774 pub cValues: u32,
39775 pub lppszW: *mut windows_core::PWSTR,
39776}
39777impl Default for SWStringArray {
39778 fn default() -> Self {
39779 unsafe { core::mem::zeroed() }
39780 }
39781}
39782pub const SYNC_ASSOCIATED: u32 = 16u32;
39783pub const SYNC_BEST_BODY: u32 = 8192u32;
39784pub const SYNC_CATCHUP: u32 = 1024u32;
39785pub const SYNC_DEFER_CONFIG: u32 = 262144u32;
39786pub const SYNC_EXPIRY: u32 = 2u32;
39787pub const SYNC_FORCE_UNICODE: u32 = 262144u32;
39788pub const SYNC_FXRECOVERMODE: u32 = 65536u32;
39789pub const SYNC_IGNORE_SPECIFIED_ON_ASSOCIATED: u32 = 16384u32;
39790pub const SYNC_LIMITED_IMESSAGE: u32 = 512u32;
39791pub const SYNC_MSG_SELECTIVE: u32 = 4096u32;
39792pub const SYNC_NEW_MESSAGE: u32 = 2048u32;
39793pub const SYNC_NORMAL: u32 = 32u32;
39794pub const SYNC_NO_CONFLICTS: u32 = 64u32;
39795pub const SYNC_NO_DELETIONS: u32 = 2u32;
39796pub const SYNC_NO_FOREIGN_KEYS: u32 = 256u32;
39797pub const SYNC_NO_SOFT_DELETIONS: u32 = 4u32;
39798pub const SYNC_ONLY_SPECIFIED_PROPS: u32 = 128u32;
39799pub const SYNC_PROGRESS_MODE: u32 = 32768u32;
39800pub const SYNC_READ: u32 = 1u32;
39801pub const SYNC_READ_STATE: u32 = 8u32;
39802pub const SYNC_SOFT_DELETE: u32 = 1u32;
39803pub const SYNC_UNICODE: u32 = 1u32;
39804pub const SZ_HPC_V1: windows_core::PCSTR = windows_core::s!("Software\\Microsoft\\Pegasus");
39805pub const SZ_HPC_V1_0: windows_core::PCSTR = windows_core::s!("InstalledDir");
39806pub const SZ_HPC_V1_MAJOR: windows_core::PCSTR = windows_core::s!("MajorVersion");
39807pub const SZ_HPC_V1_MINOR: windows_core::PCSTR = windows_core::s!("MinorVersion");
39808pub const SZ_HPC_V2: windows_core::PCSTR =
39809 windows_core::s!("Software\\Microsoft\\Windows CE Services");
39810pub const SZ_HPC_V2_MAJOR: windows_core::PCSTR = windows_core::s!("MajorVersion");
39811pub const SZ_HPC_V2_MINOR: windows_core::PCSTR = windows_core::s!("MinorVersion");
39812pub const SZ_NO_OST: windows_core::PCSTR = windows_core::s!("NoOST");
39813pub const SZ_OUTL_OST_OPTIONS: windows_core::PCSTR =
39814 windows_core::s!("Software\\Microsoft\\Office\\8.0\\Outlook\\OST");
39815pub const TABLE_CHANGED: u32 = 1u32;
39816pub const TABLE_ERROR: u32 = 2u32;
39817#[repr(C)]
39818#[derive(Clone, Copy)]
39819pub struct TABLE_NOTIFICATION {
39820 pub ulTableEvent: u32,
39821 pub hResult: windows_core::HRESULT,
39822 pub propIndex: SPropValue,
39823 pub propPrior: SPropValue,
39824 pub row: SRow,
39825 pub ulPad: u32,
39826}
39827impl Default for TABLE_NOTIFICATION {
39828 fn default() -> Self {
39829 unsafe { core::mem::zeroed() }
39830 }
39831}
39832pub const TABLE_RELOAD: u32 = 9u32;
39833pub const TABLE_RESTRICT_DONE: u32 = 7u32;
39834pub const TABLE_ROW_ADDED: u32 = 3u32;
39835pub const TABLE_ROW_DELETED: u32 = 4u32;
39836pub const TABLE_ROW_MODIFIED: u32 = 5u32;
39837pub const TABLE_SETCOL_DONE: u32 = 8u32;
39838pub const TABLE_SORT_ASCEND: u32 = 0u32;
39839pub const TABLE_SORT_CATEG_MAX: u32 = 4u32;
39840pub const TABLE_SORT_CATEG_MIN: u32 = 8u32;
39841pub const TABLE_SORT_COMBINE: u32 = 2u32;
39842pub const TABLE_SORT_DESCEND: u32 = 1u32;
39843pub const TABLE_SORT_DONE: u32 = 6u32;
39844pub const TAD_ALL_ROWS: u32 = 1u32;
39845pub const TBLSTAT_COMPLETE: u32 = 0u32;
39846pub const TBLSTAT_QCHANGED: u32 = 7u32;
39847pub const TBLSTAT_RESTRICTING: u32 = 14u32;
39848pub const TBLSTAT_RESTRICT_ERROR: u32 = 15u32;
39849pub const TBLSTAT_SETCOL_ERROR: u32 = 13u32;
39850pub const TBLSTAT_SETTING_COLS: u32 = 11u32;
39851pub const TBLSTAT_SORTING: u32 = 9u32;
39852pub const TBLSTAT_SORT_ERROR: u32 = 10u32;
39853pub const TBLTYPE_DYNAMIC: u32 = 2u32;
39854pub const TBLTYPE_KEYSET: u32 = 1u32;
39855pub const TBLTYPE_SNAPSHOT: u32 = 0u32;
39856pub const TBL_ALL_COLUMNS: u32 = 1u32;
39857pub const TBL_ASYNC: u32 = 1u32;
39858pub const TBL_BATCH: u32 = 2u32;
39859pub const TBL_COLLAPSED_CATEGORY: u32 = 4u32;
39860pub const TBL_EMPTY_CATEGORY: u32 = 2u32;
39861pub const TBL_EXPANDED_CATEGORY: u32 = 3u32;
39862pub const TBL_LEAF_ROW: u32 = 1u32;
39863pub const TBL_NOADVANCE: u32 = 1u32;
39864pub const TBL_NOWAIT: u32 = 1u32;
39865pub const TIME_ZONE_ID_DAYLIGHT: u32 = 2u32;
39866pub const TIME_ZONE_ID_STANDARD: u32 = 1u32;
39867pub const TIME_ZONE_ID_UNKNOWN: u32 = 0u32;
39868#[repr(C)]
39869#[derive(Clone, Copy, Debug, PartialEq)]
39870pub struct TRACEENTRY {
39871 pub lAction: i32,
39872 pub ftArrivalTime: windows::Win32::Foundation::FILETIME,
39873 pub ftDeferredTime: windows::Win32::Foundation::FILETIME,
39874 pub rgchADMDName: [i8; 20],
39875 pub rgchCountryName: [i8; 4],
39876 pub rgchPRMDId: [i8; 20],
39877 pub rgchAttADMDName: [i8; 20],
39878 pub rgchAttCountryName: [i8; 4],
39879 pub rgchAttPRMDId: [i8; 19],
39880 pub bAdditionalActions: u8,
39881}
39882impl Default for TRACEENTRY {
39883 fn default() -> Self {
39884 unsafe { core::mem::zeroed() }
39885 }
39886}
39887#[repr(C)]
39888#[derive(Clone, Copy, Debug, PartialEq)]
39889pub struct TRACEINFO {
39890 pub cEntries: u32,
39891 pub rgtraceentry: [TRACEENTRY; 1],
39892}
39893impl Default for TRACEINFO {
39894 fn default() -> Self {
39895 unsafe { core::mem::zeroed() }
39896 }
39897}
39898pub const TRANSFER_COPYFOLDER: u32 = 4u32;
39899pub const TRANSFER_COPYMESSAGES: u32 = 3u32;
39900pub const TRANSFER_COPYPROPS: u32 = 2u32;
39901pub const TRANSFER_COPYTO: u32 = 1u32;
39902#[repr(C)]
39903#[derive(Clone, Copy, Debug, PartialEq)]
39904pub struct TRANSMITINFO {
39905 pub ietCurrent: ENCODINGTYPE,
39906 pub ietXmitMime: ENCODINGTYPE,
39907 pub ietXmit822: ENCODINGTYPE,
39908 pub cbLongestLine: u32,
39909 pub cExtended: u32,
39910 pub ulPercentExt: u32,
39911 pub cbSize: u32,
39912 pub cLines: u32,
39913}
39914impl Default for TRANSMITINFO {
39915 fn default() -> Self {
39916 unsafe { core::mem::zeroed() }
39917 }
39918}
39919pub const TRANSPORT_DOWNLOAD: u32 = 1u32;
39920pub const TRANSPORT_UPLOAD: u32 = 2u32;
39921pub const TRUNCATE_EXISTING: u32 = 5u32;
39922pub const TXT_HTML: u32 = 2u32;
39923pub const TXT_PLAIN: u32 = 1u32;
39924pub const TYPEDID_MASK: u32 = 65535u32;
39925pub const UI_CURRENT_PROVIDER_FIRST: u32 = 4u32;
39926pub const UI_READONLY: u32 = 1u32;
39927pub const UI_SERVICE: u32 = 2u32;
39928pub const UNLOCK_BLOCKING_MID_LOCK_ALL: u32 = 4u32;
39929pub const UNLOCK_BLOCKING_MID_LOCK_LOGON_ONLY: u32 = 8u32;
39930pub const UNLOCK_CHECKIN_ABORT: u32 = 1u32;
39931pub const UNLOCK_CHECKIN_KEEP_LOCKED: u32 = 2u32;
39932pub const UNLOCK_NULL_RESOURCE: u32 = 16u32;
39933pub const UNLOCK_WRITE_THROUGH_GOP: u32 = 65536u32;
39934pub const URL_ATTACH_GENERATE_CID: u32 = 2u32;
39935pub const URL_ATTACH_INTO_MIXED: u32 = 1u32;
39936pub const URL_ATTACH_SET_CNTTYPE: u32 = 4u32;
39937pub const URL_RESOLVE_RENDERED: u32 = 1u32;
39938pub const URL_RESULVE_NO_BASE: u32 = 2u32;
39939pub const VCDIR_DELETE: u32 = 65536u32;
39940pub const VCDIR_MOVE: u32 = 262144u32;
39941pub const VCDIR_NEXT: u32 = 1u32;
39942pub const VCDIR_PREV: u32 = 2u32;
39943pub const VCSTATUS_COPY: u32 = 131072u32;
39944pub const VCSTATUS_DELETE: u32 = 65536u32;
39945pub const VCSTATUS_DELETE_IS_MOVE: u32 = 1048576u32;
39946pub const VCSTATUS_INTERACTIVE: u32 = 8u32;
39947pub const VCSTATUS_MODAL: u32 = 4u32;
39948pub const VCSTATUS_MOVE: u32 = 262144u32;
39949pub const VCSTATUS_NEW_MESSAGE: u32 = 4194304u32;
39950pub const VCSTATUS_NEXT: u32 = 1u32;
39951pub const VCSTATUS_PREV: u32 = 2u32;
39952pub const VCSTATUS_READONLY: u32 = 16u32;
39953pub const VCSTATUS_SAVE: u32 = 2097152u32;
39954pub const VCSTATUS_SUBMIT: u32 = 524288u32;
39955#[repr(C)]
39956#[derive(Clone, Copy, Debug, PartialEq)]
39957pub struct WEBPAGEOPTIONS {
39958 pub cbSize: u32,
39959 pub dwFlags: u32,
39960 pub dwDelay: u32,
39961 pub wchQuote: u16,
39962}
39963impl Default for WEBPAGEOPTIONS {
39964 fn default() -> Self {
39965 unsafe { core::mem::zeroed() }
39966 }
39967}
39968pub type WIZARDENTRY = Option<
39969 unsafe extern "system" fn(
39970 hproviderdllinstance: windows::Win32::Foundation::HINSTANCE,
39971 lppcsresourcename: *mut *mut i8,
39972 lppdlgproc: *mut windows::Win32::UI::WindowsAndMessaging::DLGPROC,
39973 lpmapiprop: windows_core::Ref<'_, IMAPIProp>,
39974 lpmapisupportobject: *mut core::ffi::c_void,
39975 ) -> u32,
39976>;
39977pub const WIZ_NEXT: u32 = 1035u32;
39978pub const WIZ_PREV: u32 = 1036u32;
39979pub const WIZ_QUERYNUMPAGES: u32 = 1034u32;
39980pub const WPF_ATTACHLINKS: u32 = 8u32;
39981pub const WPF_AUTOINLINE: u32 = 2u32;
39982pub const WPF_HTML: u32 = 1u32;
39983pub const WPF_IMAGESONLY: u32 = 16u32;
39984pub const WPF_NOMETACHARSET: u32 = 32u32;
39985pub const WPF_SLIDESHOW: u32 = 4u32;
39986pub const WSZ_URL_FLAT_FOLDER_SPACE: windows_core::PCWSTR = windows_core::w!("/-FlatUrlSpace-/");
39987pub const X500: CERTNAMETYPE = CERTNAMETYPE(2i32);
39988#[repr(C)]
39989#[derive(Clone, Copy, Debug, PartialEq)]
39990pub struct X509CERTRESULT {
39991 pub cEntries: u32,
39992 pub rgcs: *mut CERTSTATE,
39993 pub rgpCert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
39994}
39995impl Default for X509CERTRESULT {
39996 fn default() -> Self {
39997 unsafe { core::mem::zeroed() }
39998 }
39999}
40000pub type XPPROVIDERINIT = Option<
40001 unsafe extern "system" fn(
40002 hinstance: windows::Win32::Foundation::HINSTANCE,
40003 lpmalloc: windows_core::Ref<'_, windows::Win32::System::Com::IMalloc>,
40004 lpallocatebuffer: LPALLOCATEBUFFER,
40005 lpallocatemore: LPALLOCATEMORE,
40006 lpfreebuffer: LPFREEBUFFER,
40007 ulflags: u32,
40008 ulmapiver: u32,
40009 lpulproviderver: *mut u32,
40010 lppxpprovider: windows_core::OutRef<'_, IXPProvider>,
40011 ) -> windows_core::HRESULT,
40012>;
40013#[repr(C)]
40014#[derive(Clone, Copy)]
40015pub union __UPV {
40016 pub i: i16,
40017 pub l: i32,
40018 pub ul: u32,
40019 pub lpv: *mut core::ffi::c_void,
40020 pub flt: f32,
40021 pub dbl: f64,
40022 pub b: u16,
40023 pub cur: windows::Win32::System::Com::CY,
40024 pub at: f64,
40025 pub ft: windows::Win32::Foundation::FILETIME,
40026 pub lpszA: windows_core::PSTR,
40027 pub bin: SBinary,
40028 pub lpszW: windows_core::PWSTR,
40029 pub lpguid: *mut windows_core::GUID,
40030 pub li: i64,
40031 pub MVi: SShortArray,
40032 pub MVl: SLongArray,
40033 pub MVflt: SRealArray,
40034 pub MVdbl: SDoubleArray,
40035 pub MVcur: SCurrencyArray,
40036 pub MVat: SAppTimeArray,
40037 pub MVft: SDateTimeArray,
40038 pub MVbin: SBinaryArray,
40039 pub MVszA: SLPSTRArray,
40040 pub MVszW: SWStringArray,
40041 pub MVguid: SGuidArray,
40042 pub MVli: SLargeIntegerArray,
40043 pub err: i32,
40044 pub x: i32,
40045}
40046impl Default for __UPV {
40047 fn default() -> Self {
40048 unsafe { core::mem::zeroed() }
40049 }
40050}
40051pub const cchProfileNameMax: u32 = 64u32;
40052pub const cchProfilePassMax: u32 = 64u32;
40053pub const cwchUrlFlatFolderSpace: u32 = 16u32;
40054pub const fMapiUnicode: u32 = 2147483648u32;
40055pub const fVersionedDelete: u32 = 1u32;
40056pub const fVersionedMoveIn: u32 = 16u32;
40057pub const fVersionedMoveOut: u32 = 32u32;
40058pub const fVersionedPin: u32 = 4u32;
40059pub const fVersionedUnDelete: u32 = 2u32;
40060pub const fVersionedUnPin: u32 = 8u32;
40061pub const fnevCriticalError: u32 = 1u32;
40062pub const fnevExtended: u32 = 2147483648u32;
40063pub const fnevNewMail: u32 = 2u32;
40064pub const fnevObjectCopied: u32 = 64u32;
40065pub const fnevObjectCreated: u32 = 4u32;
40066pub const fnevObjectDeleted: u32 = 8u32;
40067pub const fnevObjectModified: u32 = 16u32;
40068pub const fnevObjectMoved: u32 = 32u32;
40069pub const fnevReservedForMapi: u32 = 1073741824u32;
40070pub const fnevSearchComplete: u32 = 128u32;
40071pub const fnevStatusObjectModified: u32 = 512u32;
40072pub const fnevTableModified: u32 = 256u32;
40073pub const frightsContact: i32 = 512i32;
40074pub const frightsCreate: i32 = 2i32;
40075pub const frightsCreateSubfolder: i32 = 128i32;
40076pub const frightsDeleteAny: i32 = 64i32;
40077pub const frightsDeleteOwned: i32 = 16i32;
40078pub const frightsEditAny: i32 = 32i32;
40079pub const frightsEditOwned: i32 = 8i32;
40080pub const frightsFreeBusyDetailed: i32 = 4096i32;
40081pub const frightsFreeBusySimple: i32 = 2048i32;
40082pub const frightsOwner: i32 = 256i32;
40083pub const frightsReadAny: i32 = 1i32;
40084pub const frightsVisible: i32 = 1024i32;
40085pub const fsdpermUserMailboxOwner: u32 = 1u32;
40086pub const fsdpermUserPrimaryUser: u32 = 4u32;
40087pub const fsdpermUserSendAs: u32 = 2u32;
40088pub const fsdrightAppendMsg: u32 = 4u32;
40089pub const fsdrightContact: u32 = 32768u32;
40090pub const fsdrightCreateContainer: u32 = 4u32;
40091pub const fsdrightCreateItem: u32 = 2u32;
40092pub const fsdrightDeleteOwnItem: u32 = 1024u32;
40093pub const fsdrightExecute: u32 = 32u32;
40094pub const fsdrightFreeBusyDetailed: u32 = 2u32;
40095pub const fsdrightFreeBusySimple: u32 = 1u32;
40096pub const fsdrightListContents: u32 = 1u32;
40097pub const fsdrightOwner: u32 = 16384u32;
40098pub const fsdrightReadAttributes: u32 = 128u32;
40099pub const fsdrightReadBody: u32 = 1u32;
40100pub const fsdrightReadProperty: u32 = 8u32;
40101pub const fsdrightReserved1: u32 = 64u32;
40102pub const fsdrightViewItem: u32 = 2048u32;
40103pub const fsdrightWriteAttributes: u32 = 256u32;
40104pub const fsdrightWriteBody: u32 = 2u32;
40105pub const fsdrightWriteOwnProperty: u32 = 512u32;
40106pub const fsdrightWriteProperty: u32 = 16u32;
40107pub const hrSuccess: u32 = 0u32;
40108pub const ichOpMapForward: u32 = 4u32;
40109pub const ichOpMapOpen: u32 = 1u32;
40110pub const ichOpMapPrint: u32 = 5u32;
40111pub const ichOpMapReplyToAll: u32 = 3u32;
40112pub const ichOpMapReplyToFolder: u32 = 8u32;
40113pub const ichOpMapReplyToSender: u32 = 2u32;
40114pub const ichOpMapReservedCompose: u32 = 0u32;
40115pub const ichOpMapReservedDelivery: u32 = 7u32;
40116pub const ichOpMapSaveAs: u32 = 6u32;
40117pub const lidOpMap: u32 = 1u32;
40118pub const pbExchangeProviderDelegateGuid: windows_core::PCSTR =
40119 windows_core::s!("\u{9e}\u{b4}w\u{0}t\u{e4}\u{11}\u{ce}\u{8c}^\u{0}\u{aa}\u{0}BT\u{e2}");
40120pub const pbExchangeProviderLocalStoreGuid: windows_core::PCSTR =
40121 windows_core::s!("-\u{e5}k\u{a1}dn\u{11}\u{d2}\u{8d}N\u{0}\u{c0}O\u{ae}#q");
40122pub const pbExchangeProviderPersistStoreGuid: windows_core::PCSTR =
40123 windows_core::s!("\u{98}\u{a2}=gb\u{cf}M4\u{82}y\u{db}\u{fa}jP\u{8b}1");
40124pub const pbExchangeProviderPrimaryUserGuid: windows_core::PCSTR =
40125 windows_core::s!("T\u{94}\u{a1}\u{c0})\u{7f}\u{10}\u{1b}\u{a5}\u{87}\u{8}\u{0}+*%\u{17}");
40126pub const pbExchangeProviderPublicGuid: windows_core::PCSTR =
40127 windows_core::s!("x\u{b2}\u{fa}p\u{af}\u{f7}\u{11}\u{cd}\u{9b}\u{c8}\u{0}\u{aa}\u{0}/\u{c4}Z");
40128pub const pbExchangeProviderXportGuid: windows_core::PCSTR = windows_core::s!(
40129 "\u{a9}\u{6}@\u{e0}\u{d6}\u{93}\u{11}\u{cd}\u{af}\u{95}\u{0}\u{aa}\u{0}J5\u{c3}"
40130);
40131pub const pbGlobalProfileSectionGuid: windows_core::PCSTR = windows_core::s!(
40132 "\u{13}\u{db}\u{b0}\u{c8}\u{aa}\u{5}\u{10}\u{1a}\u{9b}\u{b0}\u{0}\u{aa}\u{0}/\u{c4}Z"
40133);
40134pub const pidAdminMin: u32 = 26256u32;
40135pub const pidAttachReadOnlyMin: u32 = 26220u32;
40136pub const pidExchangeNonXmitReservedMin: u32 = 26080u32;
40137pub const pidExchangeXmitReservedMin: u32 = 16352u32;
40138pub const pidFolderMin: u32 = 26168u32;
40139pub const pidLISErrorCodeMax: u32 = 26032u32;
40140pub const pidLISErrorCodeMin: u32 = 26026u32;
40141pub const pidLISInterfacePropMax: u32 = 26080u32;
40142pub const pidLISInterfacePropMin: u32 = 26064u32;
40143pub const pidLISMsgFolderPropMax: u32 = 26048u32;
40144pub const pidLISMsgFolderPropMin: u32 = 26016u32;
40145pub const pidLocalStoreInternalMax: u32 = 26048u32;
40146pub const pidLocalStoreInternalMin: u32 = 25856u32;
40147pub const pidMAPIMin: u32 = 12288u32;
40148pub const pidMessageReadOnlyMin: u32 = 26176u32;
40149pub const pidMessageWriteableMin: u32 = 26200u32;
40150pub const pidProfileMin: u32 = 26112u32;
40151pub const pidRenMsgFldMin: u32 = 4224u32;
40152pub const pidSpecialMin: u32 = 26224u32;
40153pub const pidStoreMin: u32 = 26136u32;
40154pub const pidStoreNonTransMin: u32 = 3648u32;
40155pub const ptagLISErrorCode: u32 = 1705639939u32;
40156pub const ptagLISErrorItemType: u32 = 1705705475u32;
40157pub const ptagLISErrorItemUrl: u32 = 1705836575u32;
40158pub const ptagLISErrorLogUrl: u32 = 1701838879u32;
40159pub const ptagLISErrorOperation: u32 = 1705771011u32;
40160pub const ptagLISErrorSourceUrl: u32 = 1705902111u32;
40161pub const ptagLISExtendedErrorinfo: u32 = 1706033155u32;
40162pub const ptagLISModifiedPropertyList: u32 = 1705967647u32;
40163pub const ptagLISNewMail: u32 = 1707409419u32;
40164pub const ptagLISSubfolders: u32 = 1694498827u32;
40165pub const ptagLISUnreadCount: u32 = 1694564355u32;
40166pub const ptagSql: u32 = 1708130335u32;
40167pub const ptagSqlFrom: u32 = 1708261407u32;
40168pub const ptagSqlGroup: u32 = 1708458015u32;
40169pub const ptagSqlOrder: u32 = 1708392479u32;
40170pub const ptagSqlSelect: u32 = 1708195871u32;
40171pub const ptagSqlWhere: u32 = 1708326943u32;
40172pub const rightsAll: i32 = 1531i32;
40173pub const rightsNone: u32 = 0u32;
40174pub const rightsReadOnly: i32 = 1i32;
40175pub const sdrightsNone: u32 = 0u32;
40176pub const szDamMsgClass: windows_core::PCSTR =
40177 windows_core::s!("IPC.Microsoft Exchange 4.0.Deferred Action");
40178pub const szDemMsgClass: windows_core::PCSTR =
40179 windows_core::s!("IPC.Microsoft Exchange 4.0.Deferred Error");
40180pub const szExRuleMsgClass: windows_core::PCSTR = windows_core::s!("IPM.ExtendedRule.Message");
40181pub const szHrDispatchNotifications: windows_core::PCSTR =
40182 windows_core::s!("HrDispatchNotifications");
40183pub const szMAPIDLLSuffix: windows_core::PCSTR = windows_core::s!("32");
40184pub const szMAPINotificationMsg: windows_core::PCSTR =
40185 windows_core::s!("MAPI Notify window message");
40186pub const szOID_Microsoft_Encryption_Cert: windows_core::PCSTR =
40187 windows_core::s!("1.3.6.1.4.1.311.16.4");
40188pub const szOofTemplateMsgClassPrefix: windows_core::PCSTR =
40189 windows_core::s!("IPM.Note.Rules.OofTemplate.");
40190pub const szProviderModeratorRule: windows_core::PCSTR = windows_core::s!("MSFT:MR");
40191pub const szReplyTemplateMsgClassPrefix: windows_core::PCSTR =
40192 windows_core::s!("IPM.Note.Rules.ReplyTemplate.");
40193pub const szScCreateConversationIndex: windows_core::PCSTR =
40194 windows_core::s!("ScCreateConversationIndex");
40195pub const ulHierChanged: u32 = 1u32;
40196pub const wszExRuleMsgClass: windows_core::PCWSTR = windows_core::w!("IPM.ExtendedRule.Message");
40197pub const wszProviderModeratorRule: windows_core::PCWSTR = windows_core::w!("MSFT:MR");